【发布时间】:2010-12-31 11:07:10
【问题描述】:
我只是在学习并且非常喜欢 Actor 模式。我现在正在使用 Scala,但我对总体架构风格很感兴趣,因为它用于 Scala、Erlang、Groovy 等。
我正在考虑的情况是我需要同时做一些事情,例如,让我们说“运行一份工作”。
使用线程,我将创建一个线程池和一个阻塞队列,并让每个线程轮询阻塞队列,并在作业进出队列时处理它们。
对于演员,处理这个问题的最佳方法是什么?创建一个演员池并以某种方式向他们发送包含作业或作业的消息是否有意义?也许和“协调员”演员一起?
注意:我忘记提及的案例的一个方面是:如果我想限制我的应用程序将同时处理的作业数量怎么办?也许有配置设置?我在想一个游泳池可能会更容易做到这一点。
谢谢!
【问题讨论】:
-
是的,限制在任务列表中工作的参与者数量是有意义的。至少 Erlang 为您提供了足够的并发性,您可以通过使用它们产生足够多的进程来耗尽大部分系统资源。
-
我试图在这里以更集中、更具体、更具体的方式重新表述这个问题:stackoverflow.com/questions/2312195/…
标签: scala concurrency erlang actor