背景:執行緒不安全-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
} }
執行緒安全與執行緒不安全
執行緒安全是針對多執行緒來講的,如果所使用的公用變數在多執行緒下沒有被保護機制時,變數結果會和理論值不一致,這樣就叫作執行緒不安全,相反公用變數在保護機制下工作,就不會出現 隨機 變化,這時叫執行緒安全。執行緒安全 在多執行緒中使用時,不用自已做同步處理.執行緒不安全 在多執行緒中使用時,必須做執行...
執行緒安全與執行緒不安全
執行緒安全是針對多執行緒來講的,如果所使用的公用變數在多執行緒下沒有被保護機制時,變數結果會和理論值不一致,這樣就叫作執行緒不安全,相反公用變數在保護機制下工作,就不會出現 隨機 變化,這時叫執行緒安全。執行緒安全 在多執行緒中使用時,不用自已做同步處理.執行緒不安全 在多執行緒中使用時,必須做執行...
執行緒安全與執行緒不安全
執行緒不安全 就是不提供資料訪問保護,在多執行緒環境中對資料進行修改,會出現資料不一致的情況。執行緒安全 就是多執行緒環境中有對全域性變數的變動時,需要對執行的 塊採用鎖機制,當乙個執行緒訪問到某個資料時,其他執行緒需要等待當前執行緒執行完該 塊才可執行,不會出現資料不一致或者資料被汙染。如果一段 ...