1

我正在使用阿卡。我正在尝试解决如何绑定一组参与者(数千个),以便每个唯一的参与者都由同一个线程处理。例如,我的操作系统有 24 个本机线程,我有 1000 个参与者,每个参与者处理一个独特的数据:d1、d2、d3、.. dn,我总是希望 d1 由同一个线程 1 处理。在 Java 中,我会预先- 分配 24 个线程并维护 id 到线程的映射,以循环方式分配它们。示例:2 个线程,5 个数据 d1,d3, d5 th1 d2, d4 th2

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

除了创建我自己的调度程序之外,对此有任何想法吗?

谢谢

4

1 回答 1

3

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

希望有帮助!

干杯,√</p>

于 2012-07-04T17:31:49.200 回答