एटॉमिक मेमोरी ऑर्डरिंग इन सिंक। एक बार
सिंक के स्रोत कोड की खोज करते समय, हम परमाणु का उपयोग करने के पीछे के तर्क पर ठोकर खाते हैं। O.done = 1 जैसे मानक असाइनमेंट के बजाय StoreUint32। सभी प्रोसेसरों में पहुंच लगातार देखी जाती है। हालाँकि, अलग-अलग आर्किटेक्चर मेमोरी ऑर्डरिंग को अलग-अलग तरीके से लागू करते हैं, जिससे प्रोग्रामर के लिए चुनौतियाँ पैदा होती हैं। सभी मेमोरी एक्सेस को एसिंक्रोनस माना जाता है, जिसमें परमाणुता या ऑर्डरिंग की कोई गारंटी नहीं होती है। सभी समर्थित आर्किटेक्चर में शुद्धता की गारंटी के लिए साझा मेमोरी एक्सेस के लिए परमाणु संचालन का उपयोग। सिंक में। एक बार, परमाणु.StoreUint32 को किए गए ध्वज को सुरक्षित रूप से अपडेट करने के लिए नियोजित किया जाता है, यह सुनिश्चित करते हुए कि अन्य गोरआउट्स ध्वज को 1 पर सेट करने से पहले f() के प्रभाव का निरीक्षण कर सकते हैं।
फास्ट पाथ ऑप्टिमाइज़ेशन
atomic.StoreUint32 का उपयोग सुरक्षा बनाए रखते हुए प्रदर्शन को अनुकूलित करने के लिए सिंक.वन्स के तेज़ पथ में किया जाता है। किए गए ध्वज को पहले परमाणु.LoadUint32 के साथ जांचा जाता है और फिर परमाणु.StoreUint32 के साथ लिखा जाता है क्योंकि लेखन के साथ ध्वज को समवर्ती रूप से पढ़ना एक डेटा रेस है।
Mutex ProtectiondoSlow में प्रयुक्त म्यूटेक्स, किए गए फ़्लैग को समवर्ती लेखन से बचाने का कार्य करता है। ध्वज को अभी भी म्यूटेक्स के बिना पढ़ा जा सकता है क्योंकि यह एक रीड ऑपरेशन है, लेकिन डेटा भ्रष्टाचार को रोकने के लिए समवर्ती लेखन को सिंक्रनाइज़ किया जाना चाहिए। गो का आरामदायक मेमोरी मॉडल और सभी समर्थित आर्किटेक्चर पर थ्रेड सुरक्षा की गारंटी देने की आवश्यकता। परमाणु संचालन को नियोजित करके, सिंक.वन्स तेज़ पथ में प्रदर्शन को अनुकूलित करते हुए साझा मेमोरी तक समवर्ती पहुंच को सुरक्षित रूप से समन्वयित कर सकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3