【发布时间】:2015-05-10 17:39:37
【问题描述】:
我写了一个有 6 个线程和 3 个通道的短程序。 3 个线程同时在 2 个通道上发送,另外 3 个正在接收。现在的问题是,看起来,发送线程占用一个通道,但如果它不能占用第二个通道,它会保留第一个。 我想产生这样的效果,即发送线程尝试通过 2 个通道发送。如果这不起作用,它不会保留它获得的那个并等待最后一个工作。
我以为这样就可以了。但好像没有。
let takeFork2 = Event.send take_f2 3 in
let takeFork3 = Event.send take_f3 3 in
let e2 = Event.sync takeFork2 and
e3 = Event.sync takeFork3 in
所以和在这里是误导?!我应该使用嵌套换行、wrap_abort、选择、...来实现我的目标吗?
我问这个是为了让和知道。我不熟悉 OCaml。
谢谢
约翰内斯
【问题讨论】:
标签: multithreading events synchronization ocaml