Sco*_*son 19 parallel-processing scala scala-2.9 parallel-collections
我一直在寻找新的Scala 2.9并行系列,我希望放弃一大堆类似东西的狡猾的业余版本.特别是,我想用自己的东西替换默认实现基础的fork join pool(例如,通过actor分配网络任务评估的东西).我的理解是,这只是应用Scala的"可堆叠修改"范式的问题,但是集合库非常令人生畏,我不确定哪些位需要修改!
一些具体问题:
ForkJoinTasks?FutureThreadPoolTasks.我如何构建一个使用这个特性的集合而不是ForkJoinTasks?AdaptiveWorkStealingTasks并以某种方式实例化使用这个新特征的集合实例?(作为参考,上面提到的所有特征都在Tasks.scala中定义.)
特别是代码示例非常受欢迎!
oxb*_*kes 16
只是提供一些关于如何组合在一起的更多信息(我怀疑你已经知道):fork-join池通过parallel包对象的tasksupport值"插入"来实现scala.collection.parallel.TaskSupport特性.
反过来,这继承自Tasks(你提到)并定义如下操作:
def execute[R, Tp](fjtask: Task[R, Tp]): () => R
def executeAndWaitResult[R, Tp](task: Task[R, Tp]): R
Run Code Online (Sandbox Code Playgroud)
但是,对于我来说,如何通过提供自己的实现来覆盖集合本身明确导入的行为并不是很明显TaskSupport.例如,在ParSeqLike第47行:
import tasksupport._
Run Code Online (Sandbox Code Playgroud)
事实上,我甚至会说这看起来并行性绝对不会过分(除非我非常错误,尽管我经常这样).
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |