1.同步塊
同步塊(synchronized(obj)){ },obj稱之為同步監視器
1.obj可以是任何物件,但是推薦使用共享資源作為同步監視器
2.同步方法中無需指定同步監視器,因為同步方法的同步監視器時this即該物件本身,或class即類的模子
同步監視器執行程序
1.第一個執行緒訪問,鎖定同步監視器,執行其中代碼
2.第二個執行緒訪問,發現同步監視器被鎖定,無法訪問
3.第一個執行緒訪問完畢,解鎖同步監視器
4.第二個執行緒訪問,發現同步監視器未鎖,訪問并鎖定
注:java中四大塊:區域塊,構造塊,靜態塊,同步塊,
例

例:

2.并發容器

3.死鎖
多個執行緒各自占有一些共享資源,并且互相等待其他執行緒占有的資源才能進行,
而導致兩個或者多個執行緒都在等待對方釋放資源,都停止執行的情形,某一個同步塊同時擁有
"兩個以上物件的鎖"時,就可能會發生死鎖的問題
例:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/141150.html
標籤:Java
下一篇:Java集合多執行緒安全
