मुझे यह समझ के रूप में में शामिल है:
1.10 मल्टी पिरोया फांसी और डेटा दौड़
पैरा 5:
पुस्तकालय डी फाई परमाणु आपरेशन के एक नंबर (एनईएस क्लॉज 2 9) और म्यूटेक्स (क्लॉज 30) पर ऑपरेशंस जो विशेष रूप से सिंक्रनाइज़ेशन ऑपरेशंस के रूप में पहचाने जाते हैं। ये ऑपरेशन एक थ्रेड में असाइनमेंट करने में एक विशेष भूमिका निभाते हैं जो दूसरे को दिखाई देता है। एक या अधिक मेमोरी स्थानों पर एक सिंक्रनाइज़ेशन ऑपरेशन या तो एक उपभोग ऑपरेशन, एक अधिग्रहण ऑपरेशन, एक रिलीज ऑपरेशन, या दोनों अधिग्रहण और रिलीज ऑपरेशन है। एक संबंधित स्मृति स्थान के बिना एक सिंक्रनाइज़ेशन ऑपरेशन एक बाड़ है और या तो एक अधिग्रहण बाड़, एक रिलीज बाड़, या एक अधिग्रहण और रिलीज बाड़ दोनों हो सकता है। इसके अलावा, आराम से परमाणु संचालन होते हैं, जो सिंक्रनाइज़ेशन ऑपरेशंस नहीं होते हैं, और परमाणु पढ़ने-संशोधित-लेखन संचालन, जिनमें विशेष विशेषताएं होती हैं। [नोट: उदाहरण के लिए, एक म्यूटेक्स प्राप्त करने वाला एक कॉल म्यूटेक्स वाले स्थानों पर एक अधिग्रहण ऑपरेशन करेगा। इसके अनुरूप, एक कॉल जो एक ही म्यूटेक्स जारी करता है, उसी स्थान पर रिलीज ऑपरेशन करेगा। अनौपचारिक रूप से, अन्य मेमोरी स्थानों पर एक बल पूर्व पक्ष ई एफएफ ईक्ट्स पर रिलीज ऑपरेशन करने के बाद अन्य थ्रेडों के लिए दृश्यमान बनने के लिए जो बाद में उपभोग करते हैं या ए "आराम से" परमाणु संचालन पर अधिग्रहण ऑपरेशन सिंक्रनाइज़ेशन ऑपरेशन नहीं होते हैं, सिंक्रनाइज़ेशन ऑपरेशंस की तरह, वे डेटा दौड़ में योगदान नहीं दे सकते हैं। -जेंड नोट]
स्रोत
2012-06-23 21:10:11
मुझे लगता है कि ओपी म्यूटेक्स के अलावा अन्य स्मृति स्थानों के लिए बाड़ लगाने के बारे में पूछ रहा है। – Mysticial
मुझे समझ में नहीं आता है। सी ++ में बाड़ विशिष्ट स्मृति स्थानों को प्रभावित नहीं करते हैं। –
मैं यह कह रहा हूं: मान लें कि कोर ए 'ए [0]' को लिखता है और फिर म्यूटेक्स जारी करता है। फिर कोर बी म्यूटेक्स प्राप्त करता है और 'ए [0] 'पढ़ता है (कैश समेकन बी के लिए' ए [0] 'के नए मूल्य को फैलाने से पहले) दूसरे शब्दों में, एक म्यूटेक्स बल सभी मेमोरी स्थानों को ऊपर उठाने के लिए मजबूर करता है- लौटने से पहले आज तक। – Mysticial