एक धागा आम तौर पर एक छोटे से इसके साथ जुड़े संरचना, धागा संदर्भ है। उस संरचना को डेटा के सभी टुकड़ों से भरा जा सकता है जिन्हें थ्रेड "काम" बनाने के लिए आवश्यक है।
उदाहरण के लिए, उस थ्रेड के थ्रेड-विशिष्ट कुंजी तक पहुंचने के लिए आवश्यक डेटा संरचना की जड़, और इसे बंद करने के दौरान उन्हें साफ़ करने के लिए उन पर पुन: सक्रिय करने के लिए आवश्यक है।
आमतौर पर उस संरचना में एक म्यूटेक्स-लॉक लॉक होता है, और शायद अलग-अलग वर्गों के लिए एक से अधिक।
धागे संदर्भ में उसमें एक छोटा सा क्षेत्र हो सकता है जहां एक समाप्ति धागा अपनी निकास स्थिति रख सकता है। (void *
pthread_exit
द्वारा लौटाया गया है या थ्रेड फ़ंक्शन से लौटकर।)
थ्रेड संदर्भ थ्रेड के राज्य को इंगित कर सकता है (अभी तक नहीं बनाया गया है, चल रहा है, रोका गया है)।
एक सिंक्रनाइज़ेशन आदिम हो सकता है, जैसे एक कंडीशन वेरिएबल या सेमफोर, जो थ्रेड kick
हो सकता है, समाप्ति की स्थिति तैयार करने के बाद और यह संकेत दे रहा है कि यह समाप्त हो रहा है।
pthread_join
फ़ंक्शन उस सिंक्रनाइज़ेशन आदिम पर प्रतीक्षा कर सकता है। एक बार इंतजार समाप्त होने के बाद, कार्य स्थिति को खींचने के अलावा, फ़ंक्शन उस थ्रेड के लिए संसाधन को साफ़ कर सकता है।
धागा शामिल होने के संकेत के बाद निष्पादन जारी है। ऐसा करने के लिए इसे एक स्टैक के साथ एक संदर्भ जारी रखना चाहिए। उस बिंदु के बाद, सिस्टम को पृष्ठभूमि में थ्रेड को साफ करने की समस्या को हल करना होगा।
थ्रेडिंग का उपयोगकर्ता-स्थान कार्यान्वयन कर्नेल को रोक सकता है। जैसे कुछ संकेत बंद हो सकते हैं या जो कुछ भी इंगित करता है कि धागा समाप्त हो गया है। उस बिंदु पर, उपयोगकर्ता स्थान जानता है कि थ्रेड संभवतः अपने ढेर का उपयोग नहीं कर सकता है और इसे रीसायकल कर सकता है।
कर्नेल में, शेड्यूलर थ्रेड "खा सकता है"।थ्रेड शेड्यूलर में कुछ फ़ंक्शन कॉल कर सकता है जो इसके अधिकांश संसाधनों को साफ करने के बाद कभी नहीं लौटाता है। यह धागे को मृत के रूप में चिह्नित करता है और दूसरे धागे के संदर्भ को स्विच करता है। धागे के ढेर का फिर से उपयोग नहीं किया जाएगा (क्योंकि वह समारोह कभी वापस नहीं आता है) और पुनः दावा किया जा सकता है, साथ ही साथ इसकी कार्य संरचना और इससे जुड़ी कोई भी शेष चीजें।
उसके कोड और वास्तविक कोड के बीच एकमात्र वास्तव में बड़ा अंतर यह है कि उसका कोड अतिरिक्त कोर होने पर सीपीयू के 100% को जलाने के लिए थ्रेडिंग थ्रेड का कारण बनता है। –