2011-01-11 15 views
14

क्या आपके पास इस विषय के बारे में कोई जानकारी है? बूस्ट :: shared_mutex विशेष रूप से और पाठक-लेखक म्यूटेक्स के साथ कोई समस्या है?क्यों सी ++ 0x मानक समिति ने बढ़ावा दिया :: shared_mutex?

पाठक-लेखक म्यूटेक्स का दुरुपयोग किया जा सकता है, उदा। अक्सर लेखक ताले सरल म्यूटेक्स की तुलना में प्रदर्शन को कम कर देता है। लेकिन ऐसे कई मामले हैं जब कई पाठकों को अक्सर साझा संसाधन की आवश्यकता होती है जिसे वास्तव में लेखक द्वारा संशोधित किया जा सकता है।

+8

यह सी ++ 14 में स्वीकार किया जाता है। Http://en.cppreference.com/w/cpp/thread/shared_mutex या http://en.wikipedia.org/wiki/C++14 – Tom

+1

देखें ऊपर दी गई टिप्पणी में लिंक http: // en होना चाहिए। cppreference.com/w/cpp/thread/shared_timed_mutex ('std :: shared_mutex' एक सरल प्रकार है, जो सी ++ 14 का हिस्सा नहीं है लेकिन सी ++ 17 में होगा)। –

उत्तर

12

एंथनी विलियम्स सी ++ मानकों समिति का प्रभावशाली सदस्य है। उन्होंने कई प्रस्तावों को सह-लेखन किया जो सी ++ 11 मानक में थ्रेड लाइब्रेरी को शामिल करने के लिए प्रेरित हुए। आप this commentary में अपने आपत्तियां पढ़ सकते हैं। फिर भी, यह इसे सी ++ 17 में बना दिया।

+1

एनबी 'boost :: shared_mutex' के बराबर इसे C++ 14 में बनाया गया, लेकिन इसका नाम बदलकर' shared_timed_mutex' कर दिया गया। सी ++ 17 'shared_mutex' भी जोड़ देगा जो समान है लेकिन समय के प्रतीक्षा कार्यों के बिना (' mutex'/'timed_mutex' और' recursive_mutex'/'recursive_timed_mutex' के समान)। –

10

के रूप में बताया mail हंस द्वारा संदर्भित में, shared_mutex के साथ समस्या यह अपने उच्च भूमि के ऊपर है। इसलिए shared_mutex संसाधनों के लिए लंबे समय तक आयोजित होने पर केवल एक लाभ देता है और केवल कुछ धागे संसाधनों के लिए प्रतिस्पर्धा कर रहे हैं, जो बहुत दुर्लभ है।

मुझे इस मुद्दे के बारे में एक और detailed article मिला।

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