为什么代理有一个线程池?

时间:2013-08-07 11:47:43

标签: clojure

在clojure文档中,我看到代理使用一个线程池来处理数据。但我读到了(总是在文档中):

  

所有代理的操作在线程中的线程之间交错   池。在任何时间点,每个代理最多只有一个动作   执行。

为什么代理有一个线程池而不是一个线程来处理已发送函数的“队列”?

感谢。

1 个答案:

答案 0 :(得分:2)

代理没有“拥有线程池”。有两个线程池(用于sendsend-off操作),可以为其分配代理操作。

此设计决策是CPU绑定任务的最佳选择,也是IO绑定任务的最佳方法。

对于后一种情况,提供自己的池send-via将是最佳选择(假设您知道自己在做什么)。