"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > LoadInt32 और StoreInt32 गो में साझा वेरिएबल्स तक सुरक्षित समवर्ती पहुंच कैसे सुनिश्चित करते हैं?

LoadInt32 और StoreInt32 गो में साझा वेरिएबल्स तक सुरक्षित समवर्ती पहुंच कैसे सुनिश्चित करते हैं?

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

How do LoadInt32 and StoreInt32 ensure safe concurrent access to shared variables in Go?

परमाणु संचालन: गो के लिए LoadInt32/StoreInt32 को समझना

समवर्ती प्रोग्रामिंग के लिए परमाणु संचालन महत्वपूर्ण हैं, यह सुनिश्चित करना कि चर को कई के बीच सुरक्षित रूप से साझा किया जा सकता है goroutines. गो इस उद्देश्य के लिए सिंक/परमाणु प्रदान करता है, लेकिन LoadInt32 और StoreInt32 के बीच अंतर तुरंत स्पष्ट नहीं हो सकता है।

समवर्ती कोड में साझा चर का उपयोग करते समय, निम्नलिखित परिदृश्यों पर विचार करना महत्वपूर्ण है:

import "sync/atomic"

var sharedA int64
var sharedB *int64

// Concurrent code
tmpVarA := sharedA
tmpVarB := *sharedB

इस उदाहरण में, shareA और shareB दोनों को एक साथ एक्सेस किया जाता है। परमाणु संचालन का उपयोग किए बिना, tmpVarA और tmpVarB के लिए असंगत मान रखना संभव है। ऐसा इसलिए है क्योंकि प्रत्येक गोरोइन के लिए सीपीयू का निर्देश क्रम भिन्न हो सकता है, जिसके परिणामस्वरूप अप्रत्याशित परिणाम हो सकते हैं।

इस समस्या को हल करने के लिए, गो सिंक/परमाणु पैकेज प्रदान करता है। यहां बताया गया है कि इसे पिछले उदाहरण में कैसे शामिल किया जा सकता है:

tmpVarA := atomic.LoadInt64(&sharedA)
tmpVarB := atomic.LoadInt64(sharedB)

LoadInt64 फ़ंक्शन परमाणु रूप से साझाए और साझाबी से मान को क्रमशः tmpVarA और tmpVarB में लोड करता है। यह सुनिश्चित करता है कि मान हमेशा परमाणु रूप से प्राप्त किए जाते हैं, गोरोइन्स में उनकी स्थिरता को संरक्षित करते हुए।

संक्षेप में, समवर्ती गो कार्यक्रमों में साझा चर तक सिंक्रनाइज़ पहुंच के लिए LoadInt32/StoreInt32 जैसे परमाणु संचालन आवश्यक हैं। वे गारंटी देते हैं कि चर को सुसंगत और पूर्वानुमानित तरीके से पढ़ा और लिखा जाता है, जिससे दौड़ की स्थिति और डेटा भ्रष्टाचार को रोका जा सकता है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3