संभव डुप्लिकेट:
What are the differences between various threading synchronization options in C#?मॉनिटर बनाम Mutex
एक मॉनिटर और सी # में एक Mutex के बीच क्या अंतर है?
मॉनिटर का उपयोग कब करें और सी # में म्यूटेक्स का उपयोग कब करें?
संभव डुप्लिकेट:
What are the differences between various threading synchronization options in C#?मॉनिटर बनाम Mutex
एक मॉनिटर और सी # में एक Mutex के बीच क्या अंतर है?
मॉनिटर का उपयोग कब करें और सी # में म्यूटेक्स का उपयोग कब करें?
एक म्यूटेक्स को प्रक्रियाओं में साझा किया जा सकता है, और मॉनीटर से अधिक भारी वजन है।
मॉनीटर का उपयोग करें जब तक कि आपको प्रक्रिया सीमाओं में सिंक्रनाइज़ करने की आवश्यकता न हो।
ए Monitor
प्रबंधित किया जाता है, और अधिक हल्का वजन - लेकिन यह आपके AppDomain
तक सीमित है। एक Mutex
नामित किया जा सकता है, और प्रक्रियाओं को फैला सकता है (अनुप्रयोगों के बीच कुछ सरल आईपीसी परिदृश्यों को अनुमति देता है), और कोड में उपयोग किया जा सकता है जो प्रतीक्षा-संभाल चाहता है)।
सबसे सरल परिदृश्यों के लिए, Monitor
(lock
के माध्यम से) ठीक है।
इस सामग्री पर सलाह का एक अच्छा स्रोत जोसेफ अल्बाहारी द्वारा "सी # में थ्रेडिंग" है। सभी सामग्री ऑनलाइन उपलब्ध है। मेरी राय में, यह the whole book पढ़ने के लिए लायक है, लेकिन यो इन भागों की जाँच कर सकते हैं:
Mutex पर।
हालांकि इसमें .NET 4.0 new parallel constructs शामिल नहीं है, यह एक बहुत अच्छा प्रारंभिक बिंदु है।
अद्यतन: पुस्तक अद्यतन कर दी गई है। अब, इसमें part 5 में .NET 4.0 समांतर प्रोग्रामिंग शामिल है।
http://stackoverflow.com/questions/301160/what-are-the-differences-between-various-threading-synchronization-options-in-c – joe
मैं प्रति डिफ़ॉल्ट लॉक का उपयोग करने के साथ सहमत हूं, लेकिन आपको कॉल करने की आवश्यकता है मॉनीटर करें। अगर बाहर निकलें/बाहर निकलें 1) एक टाइमआउट की आवश्यकता है या 2) यदि किसी कारण से लॉकिंग स्कोप एक विधि तक ही सीमित नहीं है। –
एक अतिरिक्त नोट के रूप में, मॉनिटर्स को इसकी प्रतीक्षा/पल्स विधियों के साथ अक्सर "हालत चर" कहा जाता है। यह एक थ्रेड को किसी अन्य थ्रेड कॉल मॉनिटर पर कॉल करने तक कुछ इंतजार करने की अनुमति देता है। – nos