我最近很喜欢看Google IO 关于 Go 并发模式的演讲
尽管 Go 的并发方法(groutines、通过通道的通信)明显不同于 Clojure(不变性、管理引用、STM),但在 Clojure 上下文中的某些情况下,Go 方法似乎仍然有用。
那么对于 Go 的并发原语(可能是一个库),在 Clojure 或 Java 中是否有直接的等价物,特别是:
channel
- 像对象一样阻塞,直到读写器在两端都可用select
可以在多个通道上等待结果的类似构造
PS对 Java 解决方案非常满意,因为它很容易从 Clojure 中使用
更新自从最初提出这个问题以来,Clojure 现在有了core.async,它提供了所有这些功能等等。