【发布时间】:2015-05-05 10:34:58
【问题描述】:
好吧,我以前从来没有做过这样的密集并发操作,这个算法有三个主要部分。
这一切都始于大约 100 万个项目的向量。 每个项目都在 3 个主要阶段进行处理。
任务 1:发出 HTTP 请求,将接收到的数据转换为大约 50 个条目的映射。 任务 2:接收地图并根据地图中找到的信息进行一些计算以生成类实例。 任务 3:接收类并生成/添加到多个输出文件。
我最初是通过在 64 个线程(每个线程 1024 个条目)上同时运行具有 64K 个条目的任务 1 开始的。在 for 循环中生成线程。
这运行良好且相对较快,但我不断听到有关 Actor 以及它们如何比基本 Java 线程/线程池更好的堆。我已经创建了一些演员等。但不知道从哪里开始。
基本上: 1. Actor 是否是为这组特定任务实现快速并发的正确方法。或者我应该有另一种方法。 2.你怎么知道有多少线程/参与者太多了,特别是在任务一中,你怎么知道同时连接数的限制是多少(我在mac上)。有没有一条黄金法则可以遵循?多少个线程与每个线程池有多大?和演员等价物? 3. 有没有我可以查看的以类似方式实现演员的代码?我看到的所有代码要么是让演员打印 hello world,要么是超级复杂的东西。
【问题讨论】:
标签: scala concurrency akka