Scala的Actor框架可以处理10.000个没有堆栈问题的actor吗?

时间:2009-06-23 07:47:25

标签: scala concurrency actor

我想使用Scala Actor框架进行包含大约10.000个代理(机器和产品代理)的多代理模拟。

据我所知,如果有很多演员传递消息,那么由于递归会不会用完堆栈?

如果是这样,我如何增加底层工作线程的堆栈大小?

1 个答案:

答案 0 :(得分:11)

actor框架设计用于处理这个问题 - 事实上,假设你使用loop-react模式,它只能用一个线程来处理它:

import actors._
import actors.Actor._

val a = actor {
  loop {
    react {
      case ABC => //Handle here

    }
  }
}

Scala编程的第590-593页中,将对此进行更详细的讨论:基本上react方法永远不会正常返回(它以异常终止),因此它的调用堆栈会执行不需要保存。你可以把它想象成永远循环。