मुझे std::atomic
चर के बारे में पता नहीं था, लेकिन मानक द्वारा प्रदत्त std::mutex
(अजीब दाएं!) के बारे में पता था; लेकिन एक बात मेरी नजर पड़ी:मानक के परमाणु बूल और परमाणु ध्वज के बीच अंतर
std::atomic<bool>
प्रकारstd::atomic_flag
प्रकार
: वहाँ दो (मेरे लिए) प्रतीत होता है-एक ही परमाणु मानक द्वारा प्रदान प्रकार, नीचे सूचीबद्ध हैं इसके अलावा std::atomic_flag type
-
std: : atomic_flag एक परमाणु बूलियन प्रकार है। Std :: परमाणु के सभी विशेषज्ञों के विपरीत, यह लॉक-फ्री होने की गारंटी है। Std :: atomic के विपरीत, std :: atomic_flag लोड या स्टोर संचालन प्रदान नहीं करता है।
जो मैं समझने में असफल रहा। std::atomic bool type
लॉक-फ्री होने की गारंटी नहीं है? तो यह परमाणु नहीं है या क्या?
तो दोनों के बीच क्या अंतर है और मुझे किस का उपयोग करना चाहिए?
"परमाणु" और "लॉक-फ्री" समानार्थी नहीं हैं। आप परमाणु होने के बिना आसानी से लॉक-फ्री हो सकते हैं (ऐसा तब होता है जब आप कोई सिंक्रनाइज़ेशन नहीं करते हैं, उदाहरण के लिए: पी), और आप आसानी से एक परमाणु ऑपरेशन कर सकते हैं जो लॉक-फ्री नहीं है (उदाहरण के लिए, एक का उपयोग करना पर नजर रखने के)। – Luaan