如何为actor指定一个线程池

agi*_*all 12 multithreading scala pool actor

我有一个使用全局线程池的现有java/scala应用程序.我想开始在项目中使用actor,但希望应用程序中的所有内容都使用相同的池.

我知道我可以设置actor使用但希望共享线程池的最大线程数.这是否必要/合理,是否可以指定actor的线程池?

如果不可能/推荐,在已经使用线程的应用程序中集成actor时是否有任何经验法则?

谢谢.

Mit*_*ins 7

我相信你可以这样做:

trait MyActor extends Actor {
  val pool = ... // git yer thread pool here
  override def scheduler = new SchedulerAdapter {
    def execute(block: => Unit) =
      pool.execute(new Runnable {
        def run() { block }
      })
  }
} 
Run Code Online (Sandbox Code Playgroud)


Ant*_*jdr 6

对于Scala 2.8.1,它是:

scala -Dactors.corePoolSize=20
Run Code Online (Sandbox Code Playgroud)