POSIX म्यूटेक्स को पुनरावर्ती होने की अनुमति देता है। इसका मतलब है कि एक ही धागा एक ही म्यूटेक्स को दो बार लॉक कर सकता है और गतिरोध नहीं करेगा। बेशक इसे दो बार अनलॉक करने की भी आवश्यकता है, अन्यथा कोई अन्य धागा म्यूटेक्स प्राप्त नहीं कर सकता है। पीथ्रेड्स का समर्थन करने वाली सभी प्रणालियाँ पुनरावर्ती म्यूटेक्स का भी समर्थन नहीं करती हैं, लेकिन यदि वे पोसिक्स अनुरूप होना चाहते हैं, तो उन्हें करना होगा ।
अन्य एपीआई (अधिक उच्च स्तरीय एपीआई) भी आमतौर पर म्यूटेक्स की पेशकश करते हैं, जिन्हें अक्सर लॉक्स कहा जाता है। कुछ सिस्टम / भाषाएं (उदाहरण के लिए कोको ऑब्जेक्टिव-सी) दोनों, पुनरावर्ती और गैर पुनरावर्ती म्यूटेक्स प्रदान करते हैं। कुछ भाषाएँ भी केवल एक या दूसरे को प्रस्तुत करती हैं। उदाहरण के लिए जावा म्यूटेक्स हमेशा पुनरावर्ती होते हैं (एक ही वस्तु पर एक ही धागा दो बार "सिंक्रनाइज़" हो सकता है)। वे जो अन्य धागा कार्यक्षमता प्रदान करते हैं, उसके आधार पर, पुनरावर्ती म्यूटेक्स नहीं होने से कोई समस्या नहीं हो सकती है, क्योंकि वे आसानी से खुद को लिखा जा सकता है (मैं पहले से ही अधिक सरल म्यूटेक्स / स्थिति संचालन के आधार पर खुद को पुनरावर्ती म्यूटेक्स लागू करता हूं)।
मैं वास्तव में क्या नहीं समझता: गैर-पुनरावर्ती म्यूटेक्स क्या अच्छे हैं? अगर मैं एक ही म्यूटेक्स को दो बार लॉक करता हूं तो मैं थ्रेड गतिरोध क्यों चाहूंगा? यहां तक कि उच्च स्तरीय भाषाएं जो इससे बच सकती हैं (उदाहरण के लिए परीक्षण अगर यह गतिरोध और अपवाद को फेंक देगा यदि ऐसा होता है) आमतौर पर ऐसा नहीं करते हैं। वे धागे को गतिरोध के बजाय जाने देंगे।
क्या यह केवल उन मामलों के लिए है, जहां मैंने गलती से इसे दो बार लॉक कर दिया है और केवल इसे एक बार अनलॉक किया है और एक पुनरावर्ती म्यूटेक्स के मामले में, समस्या को ढूंढना कठिन होगा, इसलिए इसके बजाय मेरे पास तुरंत यह देखने के लिए गतिरोध है कि गलत लॉक कहां दिखाई देता है? लेकिन क्या मैं ऐसा नहीं कर सकता था जब ताला खोलने के बाद एक ताला काउंटर लौटा और एक स्थिति में, मुझे यकीन है कि मैंने आखिरी ताला जारी किया है और काउंटर शून्य नहीं है, मैं एक अपवाद फेंक सकता हूं या समस्या लॉग कर सकता हूं? या क्या गैर-पुनरावर्ती म्यूटेक्स का कोई अन्य, अधिक उपयोगी उपयोग-मामला है जिसे मैं देखने में असफल हूं? या क्या यह शायद सिर्फ प्रदर्शन है, क्योंकि गैर-पुनरावर्ती म्यूटेक्स एक पुनरावर्ती की तुलना में थोड़ा तेज हो सकता है? हालाँकि, मैंने इसका परीक्षण किया और अंतर वास्तव में इतना बड़ा नहीं है।