Clojure很多线程

时间:2010-06-14 19:14:18

标签: clojure

我刚看完Rick Hickey的“Clojure Concurrency”演讲,我对线程有一些疑问。

假设我遇到了很多Agent的情况,让我们说其中有10,000个运行一台机器。我宁愿不同时运行10,000个CPU线程,但我不希望线程被其他线程的操作阻止。

在此示例中,我不会真正等待回复,而是每个代理将发送一两条消息,然后等待它收到消息。

如何在不获得10k OS线程的情况下构建这样的程序,这可能最终会降低系统速度。

1 个答案:

答案 0 :(得分:2)

请记住,Clojure是在JVM之上运行的。因此,您可能拥有10,000个Java线程,但这并不等同于10,000个OS进程。我怀疑垃圾收集器可能最终成为你的瓶颈,所以我会专注于调整每个代理的足迹。 (不用说,你应该在调整之前测试并验证这一点。)