2010-12-26 10 views
12

मैं वर्तमान में कार्य समांतर पुस्तकालय का शोध कर रहा हूं और मैंने कहीं पढ़ा है कि टीपीएल वास्तव में सीएलआर-स्तर से थ्रेड पूल तंत्र का उपयोग करता है। मुझे इस जानकारी की पुष्टि करने वाला कोई लेख नहीं मिला। मुझे पता है, टीपीएल में प्रत्येक थ्रेड के लिए कार्य कतार है और संतुलन के लिए कुछ विशेष कार्य-चोरी एल्गोरिदम का उपयोग करता है। जहां तक ​​मुझे पता है, यह प्रत्येक प्रोसेसर के लिए एक धागा बनाता है। थ्रेड पूल ने टीईपी की कार्य ऑब्जेक्ट्स का उपयोग शुरू किया क्योंकि .NET 4.(कैसे) टीपीएल उपयोग (सीएलआर) थ्रेड पूल करता है?

मुझे समझ में नहीं आता कि टीपीएल थ्रेड पूल का उपयोग कैसे करता है। थ्रेड-पूल पैटर्न बताता है, कार्य आइटम कतारबद्ध हैं और थ्रेड पूल में मुक्त धागे इस कतार से एक लेते हैं। टीपीएल हालांकि वस्तुओं (कार्यों) को धागे की कतारों और काम-चोरी कार्यों के लिए स्टोर करते हैं, यदि आवश्यक हो ... इस प्रकार, काफी अलग है। मेरी गलती कहां है?

अतिरिक्त प्रश्न: चूंकि यह मेरा पहला स्टैक ओवरफ़्लो प्रश्न था, मुझे यकीन नहीं है कि यह उपयुक्त था या नहीं। क्या यह?

+1

(यह एक एसओ सवाल के रूप में बिल्कुल ठीक है।) –

उत्तर

9

टीपीएल में, TaskScheduler वास्तव में निष्पादन के लिए कार्यों को कतारबद्ध करने के लिए ज़िम्मेदार है। Default शेड्यूलर थ्रेड-पूल का उपयोग करेगा - लेकिन मेरा मानना ​​है कि यह नया थ्रेड पूल कार्यान्वयन है जो वास्तव में काम-चोरी चतुरता करता है।

डैनियल मॉथ के पास blog post है और कुछ और विवरण जो आपको उपयोगी मिल सकते हैं।

+1

लेख बहुत उपयोगी है, धन्यवाद। मैं अपने भ्रम के कारण को समझता हूं: कार्य तर्क और कार्य-चोरी वास्तव में टीपीएल के एक हिस्से के रूप में डिजाइन की गई थी। लेकिन कार्यान्वयन थ्रेड-पूल में है। यह "थ्रेड-पूल के साथ पूल" के लिए थ्रेड-पूल विकसित हुआ। एक बार फिर धन्यवाद। – eks

संबंधित मुद्दे