मैं http://gcc.gnu.org/onlinedocs/libstdc++/manual/shared_ptr.html पढ़ रहा हूँ के बारे में बताया और कुछ धागा सुरक्षा के मुद्दों अभी तक स्पष्ट मेरे लिए नहीं कर रहे हैं:std :: shared_ptr धागा सुरक्षा
- स्टैंडर्ड गारंटी देता है कि संदर्भ गिनती धागा सुरक्षित नियंत्रित किया जाता है और यह स्वतंत्र मंच है ना?
- इसी तरह की समस्या - मानक गारंटी देता है कि केवल एक धागा (अंतिम संदर्भ वाला होल्डिंग) साझा ऑब्जेक्ट पर हटाएगा, है ना?
- shared_ptr इसमें संग्रहीत वस्तु के लिए किसी भी थ्रेड सुरक्षा की गारंटी नहीं देता है?
संपादित करें:
छद्म कोड:
// Thread I
shared_ptr<A> a (new A (1));
// Thread II
shared_ptr<A> b (a);
// Thread III
shared_ptr<A> c (a);
// Thread IV
shared_ptr<A> d (a);
d.reset (new A (10));
कॉलिंग रीसेट() धागा चतुर्थ में पहली धागा में बनाए गए एक वर्ग का पिछला उदाहरण हटा सकते हैं और नया उदाहरण से प्रतिस्थापित कर देगा? इसके अलावा चतुर्थ थ्रेड में रीसेट() को कॉल करने के बाद अन्य धागे केवल नव निर्मित वस्तु को देखेंगे?
दाएं, दाएं और दाएं। – spraff
आपको 'new' – qdii