सी ++ लाइब्रेरी - <परमाणु>
परिचय
ये ऐसे प्रकार हैं जो एक मान को एनकैप्सुलेट करते हैं जिसकी पहुंच डेटा रेस न होने की गारंटी होती है और इसका उपयोग विभिन्न थ्रेड्स के बीच मेमोरी एक्सेस को सिंक्रनाइज़ करने के लिए किया जा सकता है और वह परमाणु पुस्तकालय लॉकलेस समवर्ती प्रोग्रामिंग के लिए ठीक-ठीक परमाणु संचालन के लिए घटक प्रदान करता है। प्रत्येक परमाणु संचालन किसी अन्य परमाणु संचालन के संबंध में अविभाज्य है जिसमें समान वस्तु शामिल है।
परमाणु प्रकार
अनु क्रमांक। | सदस्य प्रकार और परिभाषा |
---|---|
1 |
परमाणु
परमाणु वर्ग टेम्पलेट और बूल, अभिन्न और सूचक प्रकार के लिए विशेषज्ञता |
सी-शैली परमाणु प्रकार
इस शीर्षलेख में निम्नलिखित परमाणु प्रकार और परिभाषित हैं।
मौलिक अभिन्न प्रकार के लिए परमाणु ।
ये या तो इसी के पूर्ण विशेषज्ञता के typedefs हैं परमाणु वर्ग टेम्पलेट या इस तरह के विशेषज्ञता का एक आधार वर्ग।
चौड़ाई-आधारित अभिन्न लोगों के लिए परमाणु<Cinttypes>)।
इनमें से प्रत्येक या तो मौलिक अभिन्न प्रकारों के लिए उपरोक्त परमाणु में से एक का एक उपनाम है या का एक पूर्ण विशेषज्ञता हैपरमाणुएक विस्तारित अभिन्न प्रकार के साथ वर्ग टेम्पलेट ।
जहां N 8, 16, 32, 64 या लाइब्रेरी द्वारा समर्थित किसी अन्य प्रकार की चौड़ाई में से एक है।
निहित प्रकार | परमाणु प्रकार | विवरण |
---|---|---|
bool |
atomic_bool | |
char |
atomic_char | |
signed char |
atomic_schar | |
unsigned char |
atomic_uchar | |
short |
atomic_short | |
unsigned short |
atomic_ushort | |
int |
atomic_int | |
unsigned int |
atomic_uint | |
long |
atomic_long | |
unsigned long |
atomic_ulong | |
long long |
atomic_llong | |
unsigned long long |
atomic_ullong | |
wchar_t |
atomic_wchar_t | |
char16_t |
atomic_char16_t | |
char32_t |
atomic_char32_t | |
intmax_t | atomic_intmax_t | |
uintmax_t | atomic_uintmax_t | |
int_least एन_t |
atomic_int_least एन_t |
|
uint_least एन_t |
atomic_uint_least एन_t |
|
int_fast एन_t |
atomic_int_fast एन_t |
|
uint_fast एन_t |
atomic_uint_fast एन_t |
|
intptr_t | atomic_intptr_t | |
uintptr_t | atomic_uintptr_t | |
size_t | atomic_size_t | |
ptrdiff_t | atomic_ptrdiff_t |
परमाणु प्रकार पर संचालन
औरअनु क्रमांक। | संचालन और परिभाषा |
---|---|
1 |
atomic_is_lock_free
इसका उपयोग यह जांचने के लिए किया जाता है कि क्या परमाणु प्रकार के ऑपरेशन लॉक-फ्री हैं |
2 |
atomic_store और atomic_store_explicit
यह गैर-परमाणु तर्क के साथ परमाणु वस्तु के मूल्य को स्वचालित रूप से बदल देता है |
3 |
atomic_load & atomic_load_explicit
यह परमाणु वस्तु में संग्रहीत मूल्य को परमाणु रूप से प्राप्त करता है |
4 |
atomic_exchange और atomic_exchange_explicit
यह परमाणु परमाणु के मान को गैर-परमाणु तर्क से बदल देता है और परमाणु के पुराने मूल्य को वापस कर देता है |
5 |
atomic_compare_exchange_weak और atomic_compare_exchange_weak_explicit और atomic_compare_exchange_strong और atomic_compare_exchange_strong_strong
यह गैर-परमाणु तर्क के साथ परमाणु वस्तु के मूल्य की तुलनात्मक रूप से करता है और परमाणु विनिमय करता है यदि बराबर या परमाणु भार |
6 |
atomic_fetch_add और atomic_fetch_add_explicit
यह एक परमाणु वस्तु में एक गैर-परमाणु मूल्य जोड़ता है और परमाणु के पिछले मूल्य को प्राप्त करता है |
7 |
atomic_fetch_sub और atomic_fetch_sub_explicit
यह एक परमाणु वस्तु से एक गैर-परमाणु मूल्य को घटाता है और परमाणु के पिछले मूल्य को प्राप्त करता है |
8 |
atomic_fetch_and और atomic_fetch_and_explicit
यह परमाणु वस्तु को तार्किक के परिणाम के साथ प्रतिस्थापित करता है और एक गैर-परमाणु तर्क के साथ और परमाणु के पिछले मूल्य को प्राप्त करता है |
9 |
atomic_fetch_or और atomic_fetch_or_explicit
यह परमाणु वस्तु को तार्किक के परिणाम के साथ प्रतिस्थापित करता है या एक गैर-परमाणु तर्क के साथ और परमाणु के पिछले मूल्य को प्राप्त करता है |
10 |
atomic_fetch_xor और atomic_fetch_xor_explicit
यह परमाणु X तार्किक तर्क के परिणाम के साथ परमाणु वस्तु की जगह लेता है और परमाणु के पिछले मूल्य को प्राप्त करता है |
ध्वज प्रकार और संचालन
अनु क्रमांक। | ध्वज प्रकार और परिभाषा |
---|---|
1 |
atomic_flag
लॉक-फ्री बूलियन परमाणु प्रकार |
2 |
atomic_flag_test_and_set और atomic_flag_test_and_set_explicit
यह ध्वज को वास्तविक रूप से सेट करता है और इसके पिछले मूल्य को लौटाता है |
3 |
atomic_flag_clear और atomic_flag_clear_explicit
यह ध्वज के मूल्य को असत्य से असत्य निर्धारित करता है |