जेएमएम तर्क के अधिकांश में उपयोग किए जाने वाले किनारों से पहले परमाणु xX.lazySet (मान) विधि का क्या मतलब है? javadocs उस पर शुद्ध है, और सूर्य बग 6275329 कहता है:परमाणुXXX.lazySet (...) किनारों से पहले होता है
अर्थ विज्ञान है कि लिखने किसी भी पिछले लिखने के साथ पुनर्क्रमित होने की नहीं गारंटी है, लेकिन (या समतुल्य बाद से संचालित होने वाले पुनर्क्रमित किया जा सकता है, हो सकता है अन्य धागे के लिए दृश्यमान नहीं हो) जब तक कि कुछ अन्य अस्थिर लेखन या सिंक्रनाइज़िंग कार्रवाई नहीं होती)।
लेकिन यह एचबी किनारों के बारे में कोई तर्क नहीं है, इसलिए यह मुझे भ्रमित करता है। क्या इसका मतलब यह है कि एचबी किनारों के संदर्भ में आलसीसेट() अर्थशास्त्र व्यक्त नहीं किया जा सकता है?
अद्यतन: मैं अपने प्रश्न को ठोस बनाने की कोशिश करूंगा। ,
//thread 1: producer
...fill some data structure
myVolatileFlag = 1;
//thread 2: consumer
while(myVolatileFlag!=1){
//spin-wait
}
...use data structure...
"डेटा संरचना" के इस परिदृश्य प्रयोग में में उपभोक्ता सही है के बाद से अस्थिर झंडा लिखने-पढ़ने के लिए एचबी बढ़त बनाने के लिए, गारंटी दे रही है क्या सभी लेखन के लिए "डेटा संरचना: मैं इस परिदृश्य में साधारण अस्थिर क्षेत्र का उपयोग कर सकते "निर्माता द्वारा पूरा किया जाएगा, और उपभोक्ता द्वारा दिखाई देगा। लेकिन क्या होगा अगर मैं इस परिदृश्य में अस्थिर लिखने/पढ़ने के बजाय AtomicInteger.lazySet/प्राप्त करूंगा?
//thread 1: producer
...fill some data structure
myAtomicFlag.lazySet(1);
//thread 2: consumer
while(myAtomicFlag.get()!=1){
//spin-wait
}
...use data structure...
क्या यह अभी भी सही होगा? क्या मैं अभी भी उपभोक्ता धागे में "डेटा संरचना" मूल्य दृश्यता पर वास्तव में कर सकता हूं?
यह न सवाल "हवा से" है - मैं इस तरह के विधि LMAX Disruptor कोड में वास्तव में इस परिदृश्य में देखा है, और मुझे समझ नहीं आता कि यह सही है साबित करने के लिए कैसे ...
अगर lazySet विधि दुकान-दुकान बाधा के रूप में कार्य करता है, यह उपयोग के लिए ठीक है। एक बार थ्रेड 2 ध्वज को देखता है तो यह संरचना को पढ़ने के लिए ठीक होगा। आलसीसेट सुनिश्चित करता है कि लेखन किसी बिंदु पर दिखाई देगा और सभी आर्किटेक्चर स्वचालित दृश्यता की अनुमति देते हैं, यानी यदि कुछ लिखा गया है तो यह दिखाई देगा और अंततः संगत होगा। – bestsss