गंभीर अनुभाग कर्नेल ऑब्जेक्ट्स नहीं हैं। वे किसी भी हैंडल के साथ पहचाने नहीं जाते हैं। उनका उपयोग केवल उसी प्रक्रिया से संबंधित धागे को सिंक्रनाइज़ करने के लिए किया जा सकता है। इन प्रक्रियाओं में सिंक्रनाइज़ेशन के लिए उनका उपयोग नहीं किया जा सकता है।
CSingleLock (मुझे लगता है कि आप इसे लॉक के रूप में संदर्भित कर रहे हैं, इस संदर्भ में) RAII अवधारणा का उपयोग करके एक रैपर वर्ग है। यह आपको थ्रेड सिंक्रनाइज़ेशन ऑब्जेक्ट (इसके कन्स्ट्रक्टर में) प्राप्त करने में मदद करता है और लॉक और अनलॉक एपीआई को एक आसान तरीके से कॉल करता है। (सभी आंतरिक विवरण छुपाएं जिनके सिंक्रनाइज़ेशन ऑब्जेक्ट्स का उपयोग कर रहा है)।
क्रिटिकल अनुभागों के साथ उपयोग किए जाने पर CSingleLock, प्रक्रिया में उपयोग नहीं किया जा सकता है। जहां इस उद्देश्य के लिए म्यूटेक्स का उपयोग किया जा सकता है।
जब कोई धागा म्यूटेक्स प्राप्त करता है और कोई अन्य थ्रेड म्यूटेक्स प्राप्त नहीं कर सकता है तो म्यूटेक्स की स्थिति गैर-सिग्नल स्थिति में कहा जाता है। यदि म्यूटेक्स उपलब्ध है और कोई धागे हासिल नहीं हुआ है तो यह सिग्नल राज्य में है।
स्रोत
2010-05-11 07:25:17
वे मेरे लिए एक ही बात हैं, मेरा अनुमान है कि आप एक पुस्तकालय का उपयोग कर रहे हैं जो तीन (Win32?) के बीच कुछ अंतर बनाता है। –
क्या आप कह रहे हैं कि CSingleLock जैसे ताले थ्रेड सिंक्रनाइज़ेशन का भी समर्थन करते हैं जब प्रक्रियाओं में धागे की बात आती है। मैंने सोचा कि केवल म्यूटेक्स ही इसका समर्थन करता है। अगर मैं गलत हूं तो कृपया मुझे सही करें – ckv