2009年2月26日 星期四

第223題

Given:
11. class PingPong2{
12. synchronized void hit(long n){
13. for(int i=1; i<3; i++)
14. System.out.print(n + "-" + i + " ");
15. }
16. }
17. public dass Tester implements Runnable{
18. static PingPong2 pp2 = new PingPong2();
19. public static void main(String[] args){
20. new Thread(new Tester()).start();
21. new Thread(new Tester()).start();
22. }
23. public void run(){pp2.hit(Thread.currentThread.getId());}
24. }

Which statement is true?
A. The output could be 5-1 6-1 6-2 5-2
B. The output could be 6-1 6-2 5-1 5-2
C. The output could be 6-1 5-2 6-2 5-1
D. The output could be 6-1 6-2 5-1 7-1
答案:B
參考:13-4 執行緒的同步性與安全性
-----------------------------------------------------------
透過synchronized 同時間只會執行一個hit的Thread,故選x-1 x-2 y-1 y-2

沒有留言:

張貼留言