多執行緒筆記——2
阿新 • • 發佈:2018-12-11
物件及變數的併發訪問
1 Synchronized 同步方法
多執行緒對同一個物件中的例項變數進行併發訪問的時候產生的後果就是髒讀,而執行緒安全就是要同步獲取例項變數
2 synchronized 鎖是物件鎖,兩個執行緒分別訪問同一個類的兩個不同物件的同一個方法,效果是非同步執行的。
3關鍵字synchronized 宣告的方法一定是排隊進行的
4 synchronized 鎖重入
當一個執行緒得到一個物件鎖後,再次請求此物件鎖是可以再次獲得該物件鎖的,這就說明在一個synchronized方法、塊 內部呼叫其他的synchronized方法、塊是可以永遠得到鎖的
父子類繼承關係時,子類完全可以通過“可重入鎖”,呼叫父類方法的。
5 出現異常是 ,所持有的鎖會釋放。
6 同步不能被繼承,子類要想同步執行,需要新增synchronized關鍵字
7 同步程式碼塊
不在synchronized中的就是非同步執行,在同步程式碼塊中的就是同步執行
8 靜態同步synchronized 方法與synchronized(class)程式碼塊
synchronized 加到靜態方法上就是給Class類上鎖 Class鎖對類的所有物件例項起作用
9 多執行緒的死鎖問題,是因為互相等待資源。