दोनों कोड नीचे डेडलॉक क्यों नहीं लेते हैं? मेरा मतलब है कि getNumber (।) को कॉल करने के बाद क्लास टेस्ट की ऑब्जेक्ट लॉक होनी चाहिए, इसलिए मुझे getNumber2 (।) तक पहुंचने में सक्षम नहीं होना चाहिए।एक सिंक्रनाइज़ विधि से सिंक्रनाइज़ विधि को कॉल करना, एक ही ऑब्जेक्ट
class Test() {
synchronized int getNumber(int i){
return getNumber2(i);
}
synchronized int getNumber2(int i) {
return i;
}
public static void main(String[] args) {
System.out.println((new Test()).getNumber(100));
}
}
आउटपुट:
100
इस तरह की पोस्ट: http://stackoverflow.com/questions/5798637/is-it-safe-to-call-a-synchronized-method-from-another-synchronized-method – Walls
हां सवाल यह वही है , लेकिन संदर्भ यह काफी अलग है। इस सवाल पर यह मृत ताला के बारे में पूछ रहा था, दूसरा एक धागा सुरक्षित है। – Lovera