मुझे एक प्रश्न का सामना करना पड़ा है जिसे मुझे समझने के लिए संघर्ष किया गया है हालांकि मुझे जवाब मिला। कृपया इसे देखें और मुझे उत्तर पर एक स्पष्टीकरण प्रदान करें।ओसीपीजेपी परीक्षा में मल्टीथ्रेडिंग
public class TestSeven extends Thread {
private static int x;
public synchronized void doThings() {
int current = x;
current++;
x = current;
}
public void run() {
doThings();
}
}
सवाल और जवाब दिया कौन सा वाक्य सही है ...?
ए संकलन विफल रहता है।
बी रनटाइम पर एक अपवाद फेंक दिया गया है।
सी। रन() विधि सिंक्रनाइज़ करने से वर्ग थ्रेड-सुरक्षित हो जाएगा।
डी। परिवर्तनीय "एक्स" में डेटा समवर्ती पहुंच समस्याओं से संरक्षित है।
ई डॉटिंग्स() विधि को स्थिर के रूप में घोषित करने से वर्ग थ्रेड-सुरक्षित हो जाएगा।
एफ। सिंक्रनाइज़ (नया ऑब्जेक्ट()) {} ब्लॉक में doThings() के भीतर बयानों को लपेटना कक्षा थ्रेड-सुरक्षित बना देगा।
बोल्ड को उत्तर के रूप में दिया जाता है। अग्रिम में जवाब के लिए धन्यवाद !!
तो एक स्थिर सिंक्रनाइज़ विधि एक कक्षा में झूठ है, तो इसका मतलब है कि पूरी कक्षा लॉक कर दिया जाएगा ?? यद्यपि उस वर्ग में अधिक सिंक्रनाइज़ और गैर सिंक्रनाइज़ विधि उपलब्ध हैं। –
इसका मतलब है कि केवल एक उदाहरण क्लास लेव पर सिंक्रनाइज़ किए गए कोड को निष्पादित करने में सक्षम होगा। –
मेरा मतलब क्या था एक स्थिर सिंक्रनाइज़ विधि एक वर्ग सिंक्रनाइज़ करने के लिए पर्याप्त होगा ?? (मान लीजिए कि कक्षा में अधिक सिंक्रनाइज़ और गैर-सिंक्रनाइज़ विधि उपलब्ध है) –