【发布时间】:2014-12-08 05:36:33
【问题描述】:
我有 3 个长时间运行的任务需要同步。它们是独立的,但调用线程必须等到三个都完成后才能继续。
我可以为每个任务创建一个代理,然后等待它们,但代理并不是真正正确的语义构造,因为每个代理只会被调用一次。
我真正想要的是等待 3 个未来,或者一些更接近我想要实现的方法。
我可以等待期货而不是代理吗?
编辑:
我想答案只是简单地在一个循环中取消调用调用线程中的每个未来,这将阻塞直到它们全部返回。如果我想在这段时间做“准备”工作,我可以将“defrefing”代码本身放在另一个未来。
【问题讨论】:
标签: clojure future async-await