Scala Dispatcher - 将一组Actors绑定到一组预定义的线程

时间:2012-07-04 15:58:32

标签: scala akka

我正在使用Akka。我试图找出如何绑定一组actor(成千上万),以便每个独特的actor由同一个线程处理。 例如,我的操作系统有24个本机线程,我有1000个actor,每个处理一个独特的数据:d1,d2,d3,... dn,我总是希望d1由同一个线程1处理。 在Java中,我会预先分配24个线程并为线程维护一个id映射,以循环方式分配它们。 示例:2个线程,5个数据 d1,d3,d5 th1 d2,d4 th2

我查看了Akka文档,在4名调度员中,没有人满足我的需求。最接近的是PinnedDispatcher - 但它一直在创建本机线程,结果是OOME。

除了创建我自己的Dispatcher之外,还有任何想法吗?

谢谢

1 个答案:

答案 0 :(得分:3)

您不需要创建自己的调度程序,只需要创建自己的ExecutorService,使用ExecutorServiceConfigurator为任何调度程序提供,这样当计划执行actor时,将其发送到“它的”线程。你基本上可以保留单线程ExecutorServices

的地图

希望有所帮助!

干杯, √