与演员一起传递信息很棒。但我想要更简单的代码。
示例(伪代码)
val splicedList:List[List[Int]]=biglist.partition(100)
val sum:Int=ActorPool.numberOfActors(5).getAllResults(splicedList,foldLeft(_+_))
其中 spliceIntoParts 将一个大列表变成 100 个小列表 numberofactors 部分,创建一个使用 5 个参与者并在作业完成后接收新作业的池,并且 getallresults 使用列表上的方法。所有这些都是通过在后台传递的消息完成的。其中可能是 getFirstResult,计算第一个结果,并停止所有其他线程(如破解密码)