Collection and sharing of, interview questions and answers asked in various interviews, faqs and articles.....
Thread Important Objective Questions - Part 2
7 Given the following program, which statement is true?
public class MyClass extends Thread {
static Object lock1 = new Object();
static Object lock2 = new Object();
static volatile int i1, i2, j1, j2, k1, k2;
public void run() { while (true) { doit(); check(); } }
void doit() {
synchronized(lock1) { i1++; }
j1++;
synchronized(lock2) { k1++; k2++; }
j2++;
synchronized(lock1) { i2++; }
}
void check() {
if (i1 != i2) System.out.println("i");
if (j1 != j2) System.out.println("j");
if (k1 != k2) System.out.println("k");
}
public static void main(String[] args) {
new MyClass().start();
new MyClass().start();
}
}
Select the one correct answer.
The program will fail to compile.
One cannot be certain whether any of the letters i, j, and k will be printed during execution.
One can be certain that none of the letters i, j, and k will ever be printed during execution.
One can be certain that the letters i and k will never be printed during execution.
One can be certain that the letter k will never be printed during execution.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment