std::shared_ptr की थ्रेड सुरक्षा
std::shared_ptr की थ्रेड सुरक्षा के संबंध में आपने MSDN से जो कथन उद्धृत किया है, उसकी गलत व्याख्या की जा सकती है। इसका तात्पर्य यह है कि जबकि कई थ्रेड एक साथ अलग-अलग साझा_ptr ऑब्जेक्ट को पढ़ और लिख सकते हैं, यह share_ptr ऑब्जेक्ट को संशोधित करने की सुरक्षा की गारंटी नहीं देता है।
TL;DR:
std::shared_ptr की थ्रेड सुरक्षा केवल एक ही अंतर्निहित ऑब्जेक्ट की ओर इशारा करने वाले एकाधिक पॉइंटर्स के प्रबंधन से संबंधित है। यह साझा ऑब्जेक्ट की सामग्री तक विस्तारित नहीं होता है या साझा_ptr उदाहरण पर समवर्ती लेखन नहीं करता है। ]
कंट्रोल ब्लॉक: share_ptr की संदर्भ संख्या को प्रबंधित करता है और इंगित वस्तु का उचित विनाश सुनिश्चित करता है। यह घटक थ्रेड-सुरक्षित है।पॉइंटेड ऑब्जेक्ट: साझा की जा रही वास्तविक डेटा संरचना या ऑब्जेक्ट। इस ऑब्जेक्ट की थ्रेड सुरक्षा इसके कार्यान्वयन पर निर्भर करती है।
उदाहरण:सुरक्षित रूप से करने की क्षमता अनेक धागों के माध्यम से इंगित वस्तु को संशोधित करना वस्तु के कार्यान्वयन पर निर्भर करता है। आपके कॉन्फ़िगरेशन वर्ग के मामले में, यदि यह सिंक्रनाइज़ेशन के बिना समवर्ती लेखन की अनुमति देता है, जैसे सेटिंग्स जोड़ना या हटाना, तो कोड थ्रेड-सुरक्षित नहीं होगा।
समाधान:ऑब्जेक्ट संशोधनों के लिए थ्रेड सुरक्षा सुनिश्चित करने के लिए, साझा_पीटीआर ऑब्जेक्ट या साझा ऑब्जेक्ट तक पहुंच की रक्षा के लिए std::mutex जैसे सिंक्रनाइज़ेशन तंत्र का उपयोग करें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3