執行緒不安全

2021-08-18 00:01:44 字數 798 閱讀 7807

背景:執行緒不安全-sleep(模擬網路延遲)後多執行緒併發訪問同乙個資源

方法1:同步**塊

語法:synchronized(同步鎖) catch (interruptedexception e) }}

} }}方法2:同步方法

使用synchronizd修飾的方法,就叫同步方法,保證a執行緒執行該方法的時候,其他執行緒只能等在方法外

synchronized public void dowork()

同步鎖是誰:

對於非static方法,同步鎖就是this

方法3:同步鎖

lock機制提供了比synchronized**塊和synchronized方法更廣泛的鎖定操作,同步**塊/同步方法具有的功能lock都有,除此之外更強大,更體現物件導向。

private int num=50;

private final lock lock=new reentrantlock();

public void run()

}private void eat()

}catch (interruptedexception e) finally

} }

執行緒安全與執行緒不安全

執行緒安全是針對多執行緒來講的,如果所使用的公用變數在多執行緒下沒有被保護機制時,變數結果會和理論值不一致,這樣就叫作執行緒不安全,相反公用變數在保護機制下工作,就不會出現 隨機 變化,這時叫執行緒安全。執行緒安全 在多執行緒中使用時,不用自已做同步處理.執行緒不安全 在多執行緒中使用時,必須做執行...

執行緒安全與執行緒不安全

執行緒安全是針對多執行緒來講的,如果所使用的公用變數在多執行緒下沒有被保護機制時,變數結果會和理論值不一致,這樣就叫作執行緒不安全,相反公用變數在保護機制下工作,就不會出現 隨機 變化,這時叫執行緒安全。執行緒安全 在多執行緒中使用時,不用自已做同步處理.執行緒不安全 在多執行緒中使用時,必須做執行...

執行緒安全與執行緒不安全

執行緒不安全 就是不提供資料訪問保護,在多執行緒環境中對資料進行修改,會出現資料不一致的情況。執行緒安全 就是多執行緒環境中有對全域性變數的變動時,需要對執行的 塊採用鎖機制,當乙個執行緒訪問到某個資料時,其他執行緒需要等待當前執行緒執行完該 塊才可執行,不會出現資料不一致或者資料被汙染。如果一段 ...