Review Questions
13.9 |
Given the following program, which statements are guaranteed to be true? public class ThreadedPrint { static Thread makeThread(final String id, boolean daemon) { Thread t = new Thread(id) { public void run() { System.out.println(id); } }; t.setDaemon(daemon); t.start(); return t; } public static void main(String[] args) { Thread a = makeThread("A", false); Thread b = makeThread("B", true); System.out.print("End\n"); } } Select the two correct answers.
|
13.10 |
Given the following program, which alternatives would make good choices to synchronize on at (1)? public class Preference { private int account1; private Integer account2; public void doIt() { final Double account3 = new Double(10e10); synchronized(/* ___(1)___ */) { System.out.print("doIt"); } } } Select the two correct answers.
|
13.11 |
Which statements are not true about the synchronized block? Select the three correct answers.
|
13.12 |
Which statement is true? Select the one correct answer.
|
13.13 |
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.
|
13.14 |
Given the following program, which code modifications will result in both threads being able to participate in printing one smiley (:-)) per line continuously? public class Smiley extends Thread { public void run() { // (1) while(true) { // (2) try { // (3) System.out.print(":"); // (4) sleep(100); // (5) System.out.print("-"); // (6) sleep(100); // (7) System.out.println(")"); // (8) sleep(100); // (9) } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) { new Smiley().start(); new Smiley().start(); } } Select the two correct answers.
|