我最近很喜欢看Google IO talk on Go Concurrency patterns人
尽管并发的GO方法(群组、通道通信)明显不同于Clojure(不变性、管理引用、STM),但在Clojure上下文中,GO方法似乎在某些情况下仍然有用.
那么,在Clojure或Java中有没有Go的并发原语(可能是库)的直接类似功能,特别是:
-
channel
个类似的对象,直到两端都有读写器时才会被阻塞 - 一个类似
select
的构造,可以在多个通道上等待结果
P.S.%对Java解决方案非常满意,因为它在Clojure中很容易使用
UPDATE自从最初提出这个问题以来,Clojure现在有core.async个,它提供了所有这些功能,甚至更多.