Page: 3
9. Multi-Threading
Q: 09Given: 1. public class TestOne { 2. public static void main (String[] args) throws Exception { 3. Thread.sleep(3000); 4. System.out.println("sleep"); 5. } 6. } What is the result? A. Compilation fails. B. An exception is thrown at runtime. C. The code executes normally and prints "sleep". D. The code executes normally, but nothing is printed. Answer: C Q: 10 Given: 11. public class Test { 12. public enum Dogs {collie, harrier, shepherd}; 13. public static void main(String [] args) { 14. Dogs myDog = Dogs.shepherd; 15. switch (myDog) { 16. case collie: 17. System.out.print("collie "); 18. case default: 19. System.out.print("retriever "); 20. case harrier: 21. System.out.print("harrier "); 22. } 23. } 24. } What is the result? A. harrier B. shepherd C. retriever D. Compilation fails. E. retriever harrier F. An exception is thrown at runtime. Answer: D Q: 11 Given: 11. Runnable r = new Runnable() { 12. public void run() { 13. System.out.print("Cat"); 14. } 15. }; 16. Thread t = new Thread(r) { 17. public void run() { 18. System.out.print("Dog"); 19. } 20. }; 21. t.start(); What is the result? A. Cat B. Dog C. Compilation fails. D. The code runs with no output. E. An exception is thrown at runtime. Answer: B Q: 12 Given: 1. public class Threads4 { 2. public static void main (String[] args) { 3. new Threads4().go(); 4. } 5. public void go() { 6. Runnable r = new Runnable() { 7. public void run() { 8. System.out.print("foo"); 9. } 10. }; 11. Thread t = new Thread(r); 12. t.start(); 13. t.start(); 14. } 15. } What is the result? A. Compilation fails. B. An exception is thrown at runtime. C. The code executes normally and prints "foo". D. The code executes normally, but nothing is printed. Answer: B Q: 13 Given: 1. public class TestFive { 2. private int x; 3. public void foo() { 4. int current = x; 5. x = current + 1; 6. } 7. public void go() { 8. for(int i = 0; i < 5; i++) { 9. new Thread() { 10. public void run() { 11. foo(); 12. System.out.print(x + ", "); 13. } }.start(); 14. } } Which two changes, taken together, would guarantee the output: 1, 2, 3, 4, 5, ? (Choose two.) A. move the line 12 print statement into the foo() method B. change line 7 to public synchronized void go() { C. change the variable declaration on line 2 to private volatile int x; D. wrap the code inside the foo() method with a synchronized( this ) block E. wrap the for loop code inside the go() method with a synchronized block synchronized(this) { // for loop code here } Answer: A, D
Page: 3
1
2
3
4
5
6
7
8
9
10
|