concurrency - 在 Clojure 中创建 10k+ 代理

标签 concurrency clojure actor agents

正如我所测试的,当我创建新代理时,每个新代理都使用一个单独的线程。 多个代理可以在一个线程中运行吗?

我的想法是创建 10K+ 轻量级代理(就像 erlang 中的 actors),那么这对 Clojure 来说是一个挑战吗?

谢谢

最佳答案

这是不正确的。代理使用线程池,其大小为核心数 + 2。因此,在四核机器上,即使 10k+ 代理也只会使用 6 个工作线程。

send,即。随着 send-off 新线程将启动。

关于concurrency - 在 Clojure 中创建 10k+ 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11847033/

相关文章:

c# - 使用带有 "addValueFactory"的 ConcurrentDictionary 的 TPL 有什么风险? MSDN 暗示线程问题

clojure - 如何在 REPL 中重新加载 clojure 文件

clojure - Clojure 函数中的参数

scala - 使用 Future 进行快速排序最终陷入僵局

multithreading - 通过对银行建模来理解参与者模型

c# - 有限制的 ConcurrentDictionary

c# - ParallelExtensions "Extras"是否仍然有值(value)?

go - 确保值仅被检索一次

clojure - 获取惰性列表的前 n 项的惰性列表

java - 发送 TCP/IP 消息 AKKA actor