【发布时间】:2017-11-09 23:27:23
【问题描述】:
我试图找到一种方法来无害地观察许多futures。我的意思是不阻塞 N 个线程来等待 N 个 futures。
我看到core.async 库的构建方式不会通过阻塞操作阻塞线程,而是将其停放并重用线程。是 deref 的情况,还是仅适用于 <! 和 alts!?
【问题讨论】:
-
您的标题听起来像是在询问如何在 go 块中执行此操作,而您的问题听起来像是在询问如何使用期货而不是在 go 块中执行此操作。你在找哪个?
-
@ArthurUlfeldt 我正在寻找一种不会导致 thread 被等待 deref 阻塞的方法。
-
你必须使用clojure的期货吗?在现实世界的使用中,我会不惜一切代价避免它们。使用其他方式,例如
ztellman/manifoldlibrary。 -
@Clojure 大多数期货可以用
future-cancel停止,这使它们与其他解决方案区分开来。
标签: multithreading asynchronous concurrency clojure core.async