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

aka*_*okd 5 concurrency scala actor

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

据我所知,如果有很多演员传递消息,它会因递归而耗尽堆栈吗?

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

oxb*_*kes 11

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

import actors._
import actors.Actor._

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

    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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