我正在使用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之外,还有任何想法吗?
谢谢
答案 0 :(得分:3)
您不需要创建自己的调度程序,只需要创建自己的ExecutorService,使用ExecutorServiceConfigurator为任何调度程序提供,这样当计划执行actor时,将其发送到“它的”线程。你基本上可以保留单线程ExecutorServices
的地图希望有所帮助!
干杯, √