我最近很喜欢看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个,它提供了所有这些功能,甚至更多.

推荐答案

你应该退房core.async美元.这是一个由Rich Hickey编写的实现围棋风格频道的库.

Go相关问答推荐

Go 1.22 http mux:在同一路径上提供一个手柄和一个FS

如何使用Docker Compose配置Go,使main. go文件位于/CMD文件夹中

具有GRPC的RBAC(基于角色的访问控制)-网关生成的REST风格的API

Go-Colly:将数据切片为POST请求

如何存储来自异步Goroutine的返回值列表?

GitHub发布Golang子模块

为什么Slices包中的函数定义Slice参数的类型参数?

go测试10m后如何避免超时

为什么docall在singleflight中使用go panic?

将 firestoreinteger_value转换为整数

Get 请求在 Thunder 客户端/Postman 中返回数据,但在 Golang 代码中给出空白数据

设置指向空接口的指针

不能在 *gorm.db 而不是 gorm.db 上使用 WithContext(ctx) 方法

Golang Getrlimit 返回与 ulimit 不同的值

使用无服务器工作流 go sdk 时出现间歇性 JSON 解组错误

Golang 使用 docker 将敏感数据作为参数传递

Unescape 在 rss 中两次逃脱了标题

在 Golang 中获取谷歌云服务帐户的访问令牌?

如何发送带有登录数据的 GET 请求并将 cookie 数据保存到 txt 文件?

Go http标准库中的内存泄漏?