atomics भी है। यह मूल हार्डवेयर तुलना-और-स्वैप कमांड तक पहुंच प्रदान करता है जो सभी सिंक्रनाइज़ेशन का आधार है। यह आपको, उदाहरण के लिए, सुरक्षित रूप से एक संख्या बढ़ाने के लिए अनुमति देता है। यदि आप ++
एक अस्थिर फ़ील्ड करते हैं, तो एक ही थ्रेड उसी निष्पादन को निष्पादित करने से पहले आपके धागे को लिखने से पहले फ़ील्ड पढ़ सकता है, फिर पर के बाद अपना धागा लिखें। तो एक वृद्धि खो जाती है। परमाणु पढ़ते हैं और "परमाणु रूप से लिखते हैं" और इसलिए समस्या से बचें।
वास्तव में, वाष्पशील, सिंक्रनाइज़ बयान, और एटोमिक्स मजबूर करने के लिए सभी धागा डेटा मुख्य स्मृति से ताजा कर और/या मुख्य स्मृति के लिए लिखा हो जाते हैं के रूप में उपयुक्त है, तो उनमें से कोई भी वास्तव में कि निम्न स्तर है। (मैं सी को सरल बना रहा हूं। सी # के विपरीत, जावा में वास्तव में "मुख्य स्मृति" की अवधारणा नहीं है।)
मुझे प्रश्न 1 के लिए लगता है, हम पुनर्वित्त लॉक और हालत वस्तुओं का उपयोग कर सकते हैं, वे निम्न स्तर की संरचनाएं हैं। – Addict