मैं ब्रायन गोएट्ज़ द्वारा "अभ्यास में जावा कंसुरेंसी इन प्रैक्टिस" से कोड नमूना देख रहा हूं। वह कहता है कि यह संभव है कि यह कोड एक अनंत लूप में रहेगा क्योंकि "तैयार 'का मान कभी भी पाठक धागे को दिखाई नहीं दे सकता है"। मुझे समझ नहीं आता कि यह कैसे हो सकता है ..."प्रैक्टिस में जावा कंसुरेंसी" उदाहरण के बारे में प्रश्न
public class NoVisibility {
private static boolean ready;
private static int number;
private static class ReaderThread extends Thread {
public void run() {
while (!ready)
Thread.yield();
System.out.println(number);
}
}
public static void main(String[] args) {
new ReaderThread().start();
number = 42;
ready = true;
}
}
यदि 'तैयार' अस्थिर है लेकिन संख्या नहीं है, तो क्या यह संभव है कि संख्या 0 के रूप में मुद्रित हो जाए? – zhiyuany
हाय क्यूबिकिकस, यह सिर्फ एक स्पष्टीकरण है, यदि मुख्य धागा रीडर थ्रेड से पहले पूरा हो जाता है तो हमारे पास नंबर 42 सही करने का मौका है? –