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