Does modify different field value thread safe in boost multi_index -
मेरे पास:
स्ट्रक्चर कर्मचारी {uint64_t id; Uint32_t ए; Uint32_t b; कर्मचारी () {} स्ट्रेट बाय_आईड {}; संरचना By_a {}; संरचना By_b {}; struct Change_a: public std :: unary_function & lt; कर्मचारी, शून्य & gt; {Uint32_t p; चेंज_ए (कॉन्स्ट यूआईटी 32_ टी एंड एपीपी): पी (_पी) {} शून्य ऑपरेटर () (कर्मचारी & amp; आर) {आर.ए. = पी; }}; struct Change_b: public std :: unary_function & lt; कर्मचारी, शून्य & gt; {Uint32_t p; चेंज_ए (कॉन्स्ट यूआईटी 32_ टी एंड एपीपी): पी (_पी) {} शून्य ऑपरेटर () (कर्मचारी & amp; आर) {आर.बी. = पी; }}; }; typedef multi_index_container & lt; कर्मचारी, अनुक्रमित_ द्वारा & lt; ordered_unique & LT; टैग & lt; कर्मचारी :: By_id & gt;, सदस्य & lt; कर्मचारी, uint64_t, और कर्मचारी :: आईडी & gt; & Gt;, आदेश दिया गया_ऑन_अनीक & lt; टैग & lt; कर्मचारी :: BY_a & gt ;, सदस्य & lt; कर्मचारी, uint32_t, और कर्मचारी :: ए & gt; & Gt;, आदेश दिया गया_ऑन_अनीक & lt; टैग & lt; कर्मचारी :: By_b & gt;, सदस्य & lt; कर्मचारी, uint32_t, और कर्मचारी :: बी & gt; & Gt ;, & gt; & Gt; employee_set; Employee_set es; Typedef कर्मचारी_सेट :: इंडेक्स & lt; कर्मचारी :: By_id & gt; :: Type List_id; typedef कर्मचारी_सेट :: इंडेक्स & lt; कर्मचारी :: BY_a & gt; :: Type List_a; typedef कर्मचारी_सेट :: सूचकांक & कर्मचारी कर्मचारी :: By_b & gt; :: सूची List_b; // ... धागा 1 List_id :: iterator it_id; Es.modify (it_id, कर्मचारी :: Change_a (0)); धागा 2 List_id :: iterator it_id; Es.modify (it_id, कर्मचारी :: Change_b (0)); // ... यह स्टैंटेन्ट उदाहरण, कैसे बढ़ावा मल्टी इंडेक्स कंटेनर के साथ काम करना यदि आईडी और स्टोर इरेरेक्टर द्वारा कुछ नोड को List_id :: iterator it_id में मिला है,
मैं विभिन्न थ्रेड्स में कर्मचारी के विभिन्न क्षेत्रों को बदलना चाहता हूं।
क्या परिचालित ऑपरेशन धागा सुरक्षित?
बूस्ट.मल्टी इंडेक्स में मानक लाइब्रेरी में अन्य कंटेनर की तुलना में बहुत ही बुनियादी धागा सुरक्षा गारंटी है :
- समवर्ती केवल-पढ़ने की पहुंच ठीक है।
- समवर्ती लेखन एक्सेस को उपयोगकर्ता द्वारा बहिष्कृत किया जाना चाहिए (आप)।
इसलिए, संशोधित करें को कॉल करने के लिए (या कंटेनर में होने वाले परिवर्तनों के परिणामस्वरूप कोई अन्य ऑपरेशन) कुछ म्यूट एक्स-जैसे तंत्र के साथ सुरक्षित होनी चाहिए।
Comments
Post a Comment