public class X implements Runnable { private int x; private int y; public static void main(String [] args) { X that = new X(); (new Thread( that )).start(); (new Thread( that )).start(); } public void run() { for (;;) { synchronized (this) { x++; y++; } System.out.println(Thread.currentThread().getName() + “x = “ + x + “, y = “ + y); } } } What is the result?()
- A、 Compilation fails.
- B、 The program prints pairs of values for x and y that might not always be the same on the same line (for example, “x = 2, y = 1”).
- C、 The program prints pairs of values for x and y that are always the same on the same line (for example, “x = 1, y = 1”). In addition, each value appears only once (for example, “x = 1, y = 1” followed by “x = 2, y = 2”). The thread name at the start of the line shows that both threads are executing concurrently.
- D、 The program prints pairs of values for x and y that are always the same on the same line (for example, “x = 1, y = 1”). In addition, each value appears only once (for example, “x = 1, y = 1” followed by “x = 2, y = 2”). The thread name at the start of the line shows that only a single thread is actually executing.
正确答案:D
答案解析:有
微信扫一扫手机做题