同一时间只有一thread执行createjavathreads.pptVIP

  • 4
  • 0
  • 约5.61千字
  • 约 41页
  • 2018-05-10 发布于天津
  • 举报

同一时间只有一thread执行createjavathreads.ppt

同一时间只有一thread执行createjavathreads

THREAD SYNCHRONIZATION 當兩個以上的thread共用同一個物件資料時需要注意synchronization,維持資料同步 錯誤不容易察覺! THREAD SYNCHRONIZATION 兩人同時要存500元進入同一個原本0元的帳戶 void add(int amount) { int x = account.get (); x += amount; account.set (x); } 若由cpu排程執行順序: 1 4 2 5 3 6 應該最後帳戶裡要有1000元 然而因為沒有同步,造成帳戶裡只有500元 add(500) : // A存入500 x = account.get() //1 x += 50; //2 account.set(x) //3 add(500) : // B存入500 x = account.get() //4 x += 50; //5 account.set(x) //6 SYNCHRONIZED 每個物件內部都會有唯一的一個鎖(lock),當執行thread某個物件的同步化方法時,它會在物件上得到這個鎖定,只有取得鎖的thread才可進入同步區,未取得鎖的thread則必須等待,直到有機會取得鎖,其它執行緒必須等目前thread先執行完同步化方法,並釋放物件的鎖,才有

文档评论(0)

1亿VIP精品文档

相关文档