निम्नलिखित कोड पर विचार करें, मैं इसे एक धागा सुरक्षित वर्ग बनाने के लिए, इतना है कि यह विषम संख्या मिल कभी नहीं होगा चाहते हैं:क्या मैं अंतिम फ़ील्ड में सिंक्रनाइज़ेशन का उपयोग कर सकता हूं?
class Test {
private int value = 0;
private final Object lock;
public void add() {
synchronized (lock) {
value++;
value++;
}
}
public int getValue() {
synchronized (lock) {
return value;
}
}
}
मैं अब ताला क्षेत्र है, जो अंतिम घोषित किया है संदेह कर रहा हूँ, यह होगा मामला? या यह थ्रेड सुरक्षा तोड़ देगा?
मुझे लगता है कि लॉक फ़ील्ड को अंतिम घोषित नहीं किया गया है, यह एक थ्रेड-सुरक्षित वर्ग होना चाहिए। यदि यह निष्कर्ष गलत है, तो कृपया मुझे सही करें, धन्यवाद।
देखें [यह] (http://stackoverflow.com/questions/2101327/final-variable-and-synchronized-block-in-java) प्रश्न। – Lion