Ocaml Thread误解

时间:2017-02-18 20:29:01

标签: multithreading ocaml

我只看到5秒延迟后的整个输出,但我认为应该是另外的。

我期待以下输出:

  

主要在这里   你收到了   (然后才睡5秒

但我的代码首先睡了5秒,然后才继续。

let t1 ch = 
    let m = sync (receive ch) in 
    print_string (m ^ " -> received\n");
    delay 5.0;
    sync (send ch "t1 got the message")

let main () = 
    let ch = new_channel () in 
    create t1 ch;
    print_string "main is here\n";
    sync (send ch "hi");
    print_string ("main confirms :" ^ sync(receive ch))

我很乐意在线阅读一些教程,但我没有找到任何教程。

1 个答案:

答案 0 :(得分:2)

尝试刷新输出

print_string "main is here\n";
flush stdout