2011-02-24 23 views

उत्तर

14

लिनक्स की पाथ्रेड लाइब्रेरी, जहां तक ​​मुझे पता है, थ्रेड हैंडल की अवधारणा नहीं है। pthread_create और अन्य pthreads फ़ंक्शन, थ्रेड आईडी लौटाएं।

विंडोज के तहत, थ्रेड हैंडल थ्रेड आईडी से अलग है, वैसे ही फ़ाइल संभाल फ़ाइल नाम से अलग है।

थ्रेड हैंडल एक टोकन है जो आपको थ्रेड के साथ कुछ करने की अनुमति देता है (आमतौर पर इसके लिए प्रतीक्षा करें या इसे मार दें)। Win32 में कई ऑब्जेक्ट्स के लिए ये टोकन हैं, और उन्हें सामान्य रूप से हैंडल कहते हैं।

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

संकेत का यह स्तर उपयोगी हो सकता है या नहीं भी हो सकता है, लेकिन Win32 ऐसा करने का तरीका है, और यह व्यापक रूप से इस तरह के अनुरूप है कि यह किसी अन्य प्रकार की वस्तुओं को कैसे संभालता है।

2

थ्रेड आईडी प्रगतिशील हैं (यानी, एक के बाद एक), जिसे आप पार कर सकते हैं। विंडोज में अधिकांश हैंडल की तरह थ्रेड हैंडल वास्तव में पॉइंटर्स हैं। उदाहरण के लिए, थ्रेड हैंडल का उपयोग कर थ्रेड प्रॉपर्टी बिट्स सेट कर सकते हैं - लेकिन थ्रेड आईडी नहीं।

4

आईडी सिस्टम में चल रहे थ्रेड का अद्वितीय संख्यात्मक idetifier है। किसी भी कर्नेल ऑब्जेक्ट हैंडल की तरह थ्रेड हैंडल को कर्नेल ऑब्जेक्ट में संदर्भित पॉइंटर के विशेष प्रकार के संदर्भ के रूप में देखा जा सकता है।

अतः गिरी अंतरिक्ष में वहाँ आईडी के साथ प्रकार धागे की एक वस्तु है = 12345

और क्योंकि आप धागा आप मूल्य के साथ अपना पता एक threadid बुलाया अंतरिक्ष में एक सूचक है के साथ कुछ करना चाहता हूँ 44

कृपया ध्यान दें कि एक ही कर्नेल ऑब्जेक्ट के अलग-अलग हैंडल में अलग-अलग मान होते हैं (एक ऑब्जेक्ट पर दो पॉइंटर्स) और कर्नेल ऑब्जेक्ट्स एक से अधिक प्रक्रियाओं में हैंडल कर सकते हैं।

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