के बीच थ्रेड के .NET आंदोलन Multi-core usage, threads, thread-pools से प्रश्न का पालन करें।कोर
धागे उनके जीवनकाल के दौरान एक से दूसरे कोर से चले गए हैं?
बेशक। कल्पना करें कि आपके पास दो धागे दोहरीकोर सिस्टम पर चल रहे हैं। मुझे एक उचित अनुसूची दिखाएं जो में कोर के बीच नियमित रूप से चलने वाले थ्रेड को शामिल नहीं करता है।
यह इस साइट पर मेरा पहला समय है, इसलिए मेरे पास अनुमान लगाने के लिए पर्याप्त प्रतिनिधि नहीं था। मैंने बस एक नया प्रश्न बनाने का फैसला किया जिस पर मैं टिप्पणी करना चाहता था।
धागे को स्थानांतरित करने के लिए कोर चुनने की प्रक्रिया क्या है। क्या शेड्यूलर की तरह थ्रेड की एक सूची है जिसके लिए समय प्रसंस्करण की आवश्यकता होती है और एक खत्म होने के बाद यह एक और को रखता है?
इसके अलावा मैं सोच रहा था कि क्या बयान के संदर्भ में कोर के बीच धागे स्थानांतरित किए गए हैं। या क्या इसे सिर्फ "सामान्य ज्ञान" माना जाता है?
धन्यवाद!
क्या यह केवल एक मामला है "कैश पहले से ही इस कोर पर था, इसलिए इस धागे को वापस पाने की उच्च संभावना है"? स्ट्रॉन्ग और तुलसेन एट अल द्वारा "कोर के बीच थ्रेड्स के फास्ट स्विचिंग" पढ़ने के बाद यह अधिक जटिल लग रहा था। और कॉन्स्टेंटिनौ, स्ज़ाइड्स एट अल द्वारा "सिंगल थ्रेड माइग्रेशन ऑन चिप मल्टी-कोर" के प्रदर्शन प्रभाव। यदि यह केवल कैश इतिहास का मामला है, तो "किसी भी स्मार्ट शेड्यूलर" के समूह के तहत विंडोज शेड्यूलर है या यह सुनिश्चित करने के लिए कुछ सावधानी बरतनी चाहिए कि शेड्यूलिंग "स्मार्ट" है? – mphair
यह और अधिक है "इस धागे ने इस कोर पर निष्पादित किया है, और (सीपीयू कैश जैसी चीजों के कारण) शायद तेज़ी से निष्पादित होगा यदि मैं इसे इस कोर पर फिर से शेड्यूल करता हूं"। मैंने आपके द्वारा उद्धृत कागजात नहीं पढ़े हैं इसलिए मैं उन पर टिप्पणी नहीं कर सकता। विंडोज़ और अन्य प्रणालियों में शेड्यूलिंग एल्गोरिदम जो मैं उन्हें सामान्यीकृत करता हूं उससे अधिक उन्नत होते हैं, लेकिन विचार समान है। एक ही कोर पर धागा चलाने के लिए तेज़ है, इसलिए शेड्यूलर इसे फिर से वहां रखने की अधिक संभावना है। लेकिन जब तक आप मैन्युअल रूप से थ्रेड एफ़िनिटी सेट नहीं करते हैं तब तक कोई गारंटी नहीं होती है। –