2013-01-08 32 views
8

मैं समझता हूं कि उत्परिवर्तनीय tasksupport फ़ील्ड (सी.एफ. https://stackoverflow.com/a/5425354/82970) के माध्यम से, समानांतर संग्रह के लिए समांतरता स्तर को कैसे सेट किया जाए।स्कैला 2.10 में सभी संग्रहों के लिए समांतरता स्तर सेट करें?

मैं कैसे स्काला 2.10 में सभी नए समानांतर संग्रह के लिए समानांतरवाद स्तर सेट कर सकते हैं?

एक सहायक सवाल --- tasksupport एक समानांतर संग्रह 'विरासत में मिला' इससे बाहर बनाया नया समानांतर संग्रह से जुड़े है? (जैसे take, map, आदि के साथ)

उत्तर

9
  1. मैं सूत्रों संक्षिप्त को देखा और अगर मैं चीजों को सही ढंग से समझ, तीन प्रणाली गुण है कि डिफ़ॉल्ट निष्पादन संदर्भ है, जो हो रहा है कॉन्फ़िगर करने के लिए इस्तेमाल किया जा सकता हैं डिफ़ॉल्ट कार्य समर्थन के रूप में प्रयोग किया जाता है। ये कार्य समर्थन ऑब्जेक्ट के समांतरता स्तर को निर्धारित करते हैं।

    • scala.concurrent.context.minThreads: इंट, न्यूनतम समानांतरवाद स्तर
    • scala.concurrent.context.numThreads: या तो एक इंट, सीधे उपयोग करने के लिए समानांतरवाद स्तर निर्दिष्ट करने के लिए, या एक स्ट्रिंग: एक "x" एक डबल के बाद (उदाहरण के लिए "x1.5") है, जो तब Runtime.getRuntime.availableProcessors
    • scala.concurrent.context.maxThreads साथ गुणा किया जाता है: इंट, अधिकतम समानांतरवाद स्तर

    प्रासंगिक स्रोत फ़ाइल (अगर मैं सब कुछ सही ढंग पीछा) ExecutionContextImpl हो रहा है।

  2. अपने प्रश्न के दूसरे भाग के लिए के रूप में:
    बदलने संचालन map की तरह, filter आदि कार्य समर्थन है कि होने वाले संग्रह पर स्थापित किया गया है की रक्षा करना चाहिए। कम से कम स्रोत इस तरह से देखते हैं। :)
    अधिकांश समानांतर संचालन ParIterableLike में परिभाषित किए गए हैं और वे को Combiner में कॉल करते हैं (जो पारिवारिक लाइक में 568 या 581 लाइनों में कारखाने के माध्यम से मूल कार्य समर्थन सेट प्राप्त करता है) या परिणामी संग्रह पर सीधे कार्य समर्थन सेट करता है।

+0

धन्यवाद, यह वास्तव में अच्छी तरह से प्रलेखित नहीं है और मैं इस परिवर्तनशील 'tasksupport' संपत्ति :( –

+1

एक त्वरित परीक्षण में है कि मैं यह कैसा दिखता किया है नफरत स्काला 2.11.8' map' के रूप में, ' फ़िल्टर' इत्यादि समानांतर संग्रहों पर संचालन 'tasksupport' को संरक्षित नहीं करते हैं और इस प्रकार समांतरता स्तर, जिसे मैं मानता हूं वह counterintuitive है। – Bogdan

+0

आप इसे पाने के लिए वैश्विक स्तर पर कार्य समर्थन सेट करना चाहते हैं - http://stackoverflow.com/ प्रश्न/17865823/कैसे करते हैं-ए-सेट-default-संख्या-ऑफ-धागे के लिए स्केला-2-10-समानांतर-संग्रह – mut1na