मैं निम्नलिखित की तरह कुछ कोड है:सी ++ क्या परमाणुओं की एक सरणी को परमाणु होने की भी आवश्यकता है?
KMessageQueue::KMessageQueue()
{
messages = new atomic<KBuffer*>[MAX_MESSAGES];
for (int i = 0; i < MAX_MESSAGES; i++)
messages[i].store(nullptr);
}
कहाँ गए संदेशों KMessageQueue के एक सदस्य के रूप में परिभाषित किया है:
std::atomic<KBuffer*>* messages;
तो संदेशों सरणी में प्रत्येक तत्व परमाणु है, और मैं उन लोगों से पढ़ एक और धागा लेकिन क्या सरणी सूचक को भी परमाणु होने की आवश्यकता है? क्या कोई अन्य थ्रेड कन्स्ट्रक्टर पूरा होने के बाद किसी संदेश तक पहुंचने का प्रयास कर सकता है, केवल यह पता लगाने के लिए कि संदेशों को अभी तक एक मान असाइन नहीं किया गया है?