2024年 Clojure 状态调查!中分享您的想法。

欢迎!请参阅关于页面以了解此如何工作的更多信息。

+6
core.async

之前在 Slack 上有一些人询问有关虚拟线程和 core.async 的信息。这是一个这样的线程示例 https://clojurians.slack.com/archives/C05423W6H/p1677676131782299

当然,也需要考虑 ClojureScript 和非 Loom 代码。我假设核心异步虚拟线程的实现可能存在于一个专门的命名空间中,以避免破坏旧代码。

我发布这个问题既是功能请求,也是让人们投票的中心地带。

2 个答案

+3

虚拟线程可能会让我们重新思考很多关于 core.async 的东西,我们已经就此进行了讨论。Clojure 1.12 发布后,我认为这可能是我们列表中的高优先级任务。关于发布方面(考虑到 Java 21 的要求),具体细节还尚待确定。

0

Spindle 通过猴子补丁的方式扩展了 core.async 以添加此功能。注意:我并不是这个库的作者,也不是(还没有)它的使用者,尽管我非常尊重作者对 Clojure 生态系统的贡献。

by
请注意,即使是将主池修复为使用虚拟线程,core.async 仍然使用真实的操作系统线程进行调度。

今天,我们更倾向于在 CPU 密集型任务中使用 core.async,而不是在 I/O 密集型任务中使用它,而虚拟线程则针对 I/O 密集型任务进行了优化,因此在仅仅将 core.async 补丁用于虚拟线程时存在固有的紧张关系。
...