2013-01-08 74 views

回答

9
  1. 我看着來源短暫,如果我理解正確的事情,有一些可以用來配置默認的執行上下文,這似乎是三個系統屬性用作默認任務支持。這些決定了任務支持對象的並行性級別。

    • scala.concurrent.context.minThreads:中等,最小並行水平
    • scala.concurrent.context.numThreads:要麼一個Int,以指定並行水平直接使用,或一字符串:「x」的後面是雙(如「X1.5」 ),然後用Runtime.getRuntime.availableProcessors
    • scala.concurrent.context.maxThreads乘以:詮釋,最大並行水平

    相關的源文件(如果我正確地遵循一切)似乎是ExecutionContextImpl

  2. 關於你問題的第二部分:
    轉變操作,比如mapfilter等應保持已設置的原始採集任務的支持。至少消息來源是這樣看的。 :)
    大多數並行操作在ParIterableLike中定義,它們要麼在Combiner中調用resultWithTaskSupport(它通過工廠在ParIterableLike的第568行或第581行得到始發任務支持集),或直接在結果集上設置任務支持。

+0

感謝,這實在不是有據可查的,我恨這個可變'tasksupport'財產:( –

+1

在快速測試,我已經做了,它看起來像斯卡拉爲2.11.8的'map'的,'過濾器「等操作並行集合不保留'tasksupport'並因此並行水平,我承認這是違反直覺的。 – Bogdan

+0

您將要設置全局任務支持以解決此問題 - http://stackoverflow.com/問題/ 17865823 /如何-DO-I-設置的默認用戶號碼的線程換斯卡拉-2-10平行的集合 – mut1na

相關問題