मैं नीचे वर्गक्या क्लास पर लॉक है, क्लास वैरिएबल भी लॉक करता है? - जावा
public class Example{
public static List<String> list = new ArrayList<String>();
public static void addElement(String val){
synchronized(list){
list.add(val);
}
}
public static synchronized void printElement(){
Iterator<String> it = list.iterator();
while(it.hasNext()){
//print element
}
}
}
इटरेटर() printElement विधि में कॉल ConcurrentModificationException फेंक विल है? मूल सवाल यह है कि यदि क्लास ऑब्जेक्ट पर लॉक अधिग्रहित किया गया है (जैसा कि प्रिंट एलिमेंट विधि में किया गया है), क्या यह कक्षा के सदस्यों/चरों को भी लॉक करेगा? कृपया उत्तर के साथ मेरी मदद करें।
दो ताले का उपयोग करके कुछ बुरा डेडलॉक्स हो सकता है, इसलिए मैं विधि हस्ताक्षर – Simiil
@ सिमीयल में सिंक्रनाइज़ कर दूंगा: * किसी भी * लॉक के परिणामस्वरूप डेडलॉक हो सकता है। :-) लेकिन हाँ, मैंने इसे हटा दिया है, क्योंकि यह तब तक जरूरी नहीं होना चाहिए जब तक कि प्रश्न में कोई कारण न दिखाया जाए। –
एक लॉक वास्तव में कुछ भी ताला लगा देता है। यह कुछ ताला लगाने के लिए प्रयोग किया जाता है :) – extraneon