आदेश देने से पहले क्या होता है मैं दो धागे हैं:वाष्पशील चर और
थ्रेड: 1
a = 1;
x = b;
थ्रेड: 2
b = 1
y = a
यहाँ एक और ख अस्थिर घोषित कर रहे हैं। मुझे समझ में नहीं आया कि एक = 1 के बीच "होता है" किनारा कैसे बनाया जाता है; और वाई = ए; और एक्स = बी के बीच; और बी = 1;
मैं समझता हूं कि अस्थिर चर का उपयोग करके कोई थ्रेड कैश से पुराने मूल्यों को पढ़ने से रोक सकता है। लेकिन ऑर्डर करने से पहले अस्थिर चर सुनिश्चित कैसे हो सकता है।
विशेष रूप से, मैं यह समझ नहीं आया:
एक अस्थिर क्षेत्र के लिए एक लिखने एक ही क्षेत्र के हर बाद पढ़ने से पहले होता है।
क्या यह काम करता है?
इस हालिया प्रश्न और कई प्रासंगिक जानकारी के लिए उत्तर देखें: http://stackoverflow.com/questions/3964317/memory-barriers-and-coding-style-over-a-java-vm – andersoj