"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या C++11 मल्टीथ्रेडिंग में 'अस्थिर' अभी भी प्रासंगिक है?

क्या C++11 मल्टीथ्रेडिंग में 'अस्थिर' अभी भी प्रासंगिक है?

2024-11-16 को प्रकाशित
ब्राउज़ करें:902

Is `volatile` Still Relevant in C  11 Multithreading?

सी 11 में अस्थिर चर

सी 11 मानक में एक बहु-थ्रेडेड मशीन मॉडल की शुरूआत अस्थिर के व्यवहार के बारे में सवाल उठाती है वेरिएबल, जिनका उपयोग परंपरागत रूप से अनुकूलन को रोकने के लिए किया जाता है जिसके परिणामस्वरूप समवर्ती वातावरण में अपरिभाषित व्यवहार हो सकता है।

सी 98/03 में, मेमोरी मॉडल में मल्टी-थ्रेडिंग की पहचान की कमी का मतलब था कि कंपाइलर अनुकूलन कर सकता है एक अस्थिर चर के पढ़ने से, एक अंतहीन लूप के कुख्यात उदाहरण की ओर अग्रसर होता है जो एक चर के मूल्य को बदलने की प्रतीक्षा कर रहा है।

हालांकि, सी 11 मेमोरी मॉडल चर के समवर्ती पहुंच की संभावना को स्वीकार करता है। क्या इसका मतलब यह है कि volatile अब अप्रचलित है? हालांकि यह मल्टी-थ्रेडिंग को पहचानता है, यह उचित सिंक्रनाइज़ेशन के बिना चर तक पहुंचने पर अपरिभाषित व्यवहार की संभावना को खत्म नहीं करता है। बहु-थ्रेडेड वातावरण में भी, साझा चर तक गैर-परमाणु पहुंच अपरिभाषित रहती है।

volatile int x;void func() { x = 0;

जबकि (x = = 0) {}

}

इसलिए, हमारे उदाहरण कोड में, कंपाइलर अभी भी while लूप में x की रीडिंग को अनुकूलित करने के लिए स्वतंत्र है, जिसके परिणामस्वरूप अपरिभाषित व्यवहार होता है। वोलेटाइल केवल मेमोरी एक्सेस को प्रभावित करता है, थ्रेडिंग व्यवहार को नहीं। . सी 11 मेमोरी मॉडल विशेष रूप से परिभाषित करता है कि लेखन कब और कैसे अन्य थ्रेड्स को दिखाई देता है। अस्थिर इस आवश्यकता को संबोधित नहीं करता है। ताले या परमाणु संचालन जैसे सिंक्रनाइज़ेशन निर्माणों द्वारा जारी मेमोरी बाधाएं, यह सुनिश्चित करने के लिए आवश्यक हैं कि लेखन कोर के बीच सिंक्रनाइज़ हो। उन अनुकूलन को रोकने के लिए जो गलत मेमोरी एक्सेस का कारण बन सकते हैं। हालाँकि, यह मल्टीथ्रेडेड प्रोग्रामिंग के लिए पर्याप्त नहीं है। समवर्ती वातावरण में थ्रेड अखंडता और परिभाषित व्यवहार की गारंटी के लिए उचित सिंक्रनाइज़ेशन तंत्र की अभी भी आवश्यकता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3