2024 Clojure 问卷调查中分享您的想法!

欢迎!请参阅关于页面,了解更多关于此网站的工作方式的信息。

+6
core.async

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

当然,也需要考虑 ClojureScript 和非 Loom 代码。我假设 core.async 将会有一个专用的命名空间来提供虚拟线程功能,以防止破坏旧代码。

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

2 个答案

+3

虚拟线程可能会让我们重新思考很多 core.async 的方面,我们已经开始讨论这个问题了。Clojure 1.12 发布后,我认为这很可能会在我们的待办事项列表中排名很高。从发布角度来看,还有很多未知的事情(考虑到需要 Java 21)。

0

Spindle 对 core.async 进行猴子补丁,添加此功能。注意:我并不是这个库的作者,也不是它的用户,尽管我非常钦佩作者的Clojure生态系统贡献。

请注意,即使在修补主要池以使用虚拟线程时,core.async 仍然使用真实的操作系统线程进行调度。

今天,我们可能会更多地将 core.async 用于CPU密集型任务,而不是I/O密集型任务,而虚拟线程则针对I/O密集型任务进行了优化,因此在简单修补 core.async 以使用虚拟线程中存在固有的张力。
...