यहाँ संपादित कर सकते हैं परिदृश्य है:सी ++ एसटीएल unordered_map, धागा सुरक्षा जहां प्रत्येक धागा केवल उसके अपने सौंपा कुंजी एक्सेस और कहा कि मूल्य
1) का उपयोग कर एक unordered_map<int, vector<MyClass*>*>
की मैं चाबियाँ 1, 2 जोड़ते हैं, ... 8
2) सभी कुंजी प्रोग्राम प्रारंभिकरण में वेक्टर के साथ सेट की गई हैं और कुछ भी जोड़ा या हटाया गया है
3) मेरे पास 8 धागे हैं, जहां थ्रेड 1 कुंजी [1], थ्रेड 2 कुंजी [2], ... thread8 कुंजी का उपयोग करता है [8] (यानी थ्रेड नंबर केवल उस कुंजी नंबर तक पहुंच सकता है और कोई अन्य कुंजी नहीं)
कभी-कभी मैं मान vecto को फिर से असाइन करता हूं आर * एक और ढेर आवंटित संग्रह के लिए। (यानी थ्रेड 1 key[1] = new vector<MyClass*>
करता है)
मेरा मानना है कि यह थ्रेड सुरक्षित होगा, क्या मैं सही हूं? यदि नहीं, तो मुझे लगता है कि मैं concurrent_unordered_map का उपयोग करूंगा।
धन्यवाद।
मुझे अभी पता चला है कि '[container.requirements.dataraces]/1' यह मेरे मूल उत्तर में सुझाए गए मुकाबले बहुत अच्छे तरीके से किया जा सकता है। कृपया देख लीजिये। – Mankarse