2009年2月26日 星期四

第235題

Given:
11. public class PingPong implements Runnable{
12. synchronized void hit(long n){
13. for(int i=1; i<3; color="#ffffff">CD
參考:13-4 執行緒的同步性與安全性
-----------------------------------------------
解析:雖然第12行的hit()方法加上synchronized ,但第17,18行各自啟動1條Thread
並在第21行透過不同的pingping物作呼叫第12行hit()方法,所以同一時間這2 條Thread
都可以執行,因為synchronized 無法鎖定不同物件的Thread;因此輸出時會看到2條Thread
(例如Thread id 分別為7和8)交互執行,並各自遞增i的值,而不會影響對方

1 則留言: