इंटेल का दस्तावेज स्पष्ट रूप से स्पष्ट लगता है कि यह अनावश्यक है।
IA-32 इंटेल वास्तुकला सॉफ्टवेयर डेवलपर की मैनुअल खंड 3 ए: सिस्टम प्रोग्रामिंग गाइड, भाग 1
7.1.2.1 कहते हैं:
संचालन जिस पर प्रोसेसर को अपने आप लॉक इस प्रकार है अर्थशास्त्र निम्नानुसार हैं:
- जब XCHG निर्देश निष्पादित करता है तो संदर्भ m एमोरी।
इसी
,
इंटेल 64 और IA-32 आर्किटेक्चर सॉफ्टवेयर डेवलपर की मैनुअल वॉल्यूम 2 बी: निर्देश सेट संदर्भ, न्यूजीलैंड
XCHG:
तो एक मेमोरी ऑपरेंड का संदर्भ दिया गया है, प्रोसेसर लॉकिंग प्रोटोकॉल स्वचालित रूप से इम्प्लायर है LOCK उपसर्ग या आईओपीएल के मूल्य की उपस्थिति या अनुपस्थिति के बावजूद एक्सचेंज ऑपरेशन की अवधि के लिए तैयार किया गया।
ध्यान दें कि यह वास्तव में मतलब यह नहीं है कि लॉक # संकेत जोर दिया जाता है या नहीं, लॉक उपसर्ग प्रयोग किया जाता है, 7.1.4 बताता है कि कैसे बाद में प्रोसेसर अर्थ विज्ञान ताला लगा पर बिना एक ताला # संरक्षित कर रहे हैं, तो स्मृति स्थान कैश किया गया है चालाक, और निश्चित रूप से मेरे सिर पर।
स्रोत
2010-06-29 20:24:54
ओरेकल हॉटस्पॉट JVM पर PrintAssembly विकल्प भी इस बात से सहमत है। असेंबली उत्पन्न करते समय, यह x86-64 पर xchg निर्देश पर _not_ लॉक उपसर्ग है। –