मुझे संबंधों के साथ सिंक्रनाइज़ करने में मदद की ज़रूरत है। जितना अधिक मैं इसे समझने की कोशिश कर रहा हूं, उतना ही मुझे लगता है कि मैं कुछ भी नहीं समझता। कभी-कभी मुझे लगता है कि यह है, मुझे मिल गया है, लेकिन एक और उदाहरण देखने के बाद मैं फिर से उलझन में आ गया। कृपया इसे सही करने में मेरी मदद करें।सिंक्रनाइज़ करता है-साथ, संबंध और अधिग्रहण से पहले सेमेन्टिक्स
ऐसा कहा जाता है कि एक ऑपरेशन ए एक सिंक्रनाइज़ करता है- एक ऑपरेशन बी के साथ अगर ए कुछ रिलीज सेमेन्टिक्स के साथ कुछ परमाणु चर एम के लिए एक स्टोर है, बी एक ही चर से एम है, अर्थात् अधिग्रहण के साथ, और बी मान को पढ़ता है ए द्वारा संग्रहीत यह भी कहा जाता है कि एक ऑपरेशन एक होता है-पहले एक ऑपरेशन बी अगर
- एक बी के रूप में ही धागे पर, या
- एक सिंक्रनाइज़ किया जाता है, और एक कार्यक्रम के क्रम में बी से पहले है -साथ बी, या
- कोई अन्य ऑपरेशन सी से पहले होता है, और सी होता है-बी 01 से पहले
ठीक है। अगर हम इस उदाहरण को देखते हैं
thread0 प्रदर्शन करता है | thread1
स्टोर x (रिलीज़) | लोड एक्स (अधिग्रहण)
एक्स से लोड के साथ एक्स को सिंक्रनाइज़ करने के लिए यहां स्टोर करता है? अगर हम यहां रिश्ते के साथ सिंक्रनाइज़ करते हैं, तो एक्स से लोड करने से पहले एक्स को स्टोर किया जाता है, इसलिए थ्रेड में x से पहले स्टोर में अनुक्रमित होने वाली प्रत्येक चीज 0 से पहले थ्रेड में लोड होने से पहले होती है। इसका मतलब है कि यहां लागू ऑर्डर किया गया है। क्या यह सही है? लेकिन इस मामले में मुझे समझ में नहीं आता कि "और बी परिभाषा के हिस्से" ए द्वारा संग्रहीत मूल्य को क्या पढ़ता है? यदि थ्रेड 1 तेज है तो थ्रेड 0 यह पुराना मान पढ़ सकता है। तो यहां रिश्ता क्या है और क्या कोई रिश्ता है? यदि कोई नहीं है, तो मैं उस रिश्ते को कैसे प्रदान कर सकता हूं?
अग्रिम धन्यवाद।
एक महान लेख यहाँ है http://preshing.com/20130823/the-synchronizes-with-relation/ – camino