What will be the output of the program?


			  		

Loading

Choose the correct option.

What will be the output of the program?

public class Test107 implements Runnable  {     
private int x;
private int y;
public static void main(String args[]) {
Test107 that = new Test107();
(new Thread(that)).start();
(new Thread(that)).start();
}
public synchronized void run() {
for(int i = 0; i < 10; i++) {
x++;
y++;
System.out.println("x = " + x + ", y = " + y); /* Line 17 */
}
}
}

 

A. Compilation error.
B. Will print in this order: x = 1 y = 1 x = 2 y = 2 x = 3 y = 3 x = 4 y = 4 x = 5 y = 5… but the output will be produced by both threads running simultaneously.
C. Will print in this order: x = 1 y = 1 x = 2 y = 2 x = 3 y = 3 x = 4 y = 4 x = 5 y = 5… but the output will be produced by first one thread then the other. This is guaranteed by the synchronised code.
D. Will print in this order x = 1 y = 2 x = 3 y = 4 x = 5 y = 6 x = 7 y = 8…

Leave a Comment