關於多進程的安全問題

關於多進程安全問題  。   同步數據


synchronized(對象){

需要同步的代碼塊

}

判斷是否需要同步的代碼塊是看數據是否是共享數據

對象如同鎖,持有鎖的京城可以子啊同步中執行,

沒有持有鎖的線程即使獲取CPU的執行權,也進不去同步代碼塊,因爲沒有獲取鎖。


同步的前提

1、必須要有兩個或者兩個以上的線程。

2、必須多個線程使用同一個鎖。

必須保證同步中只有一個線程在執行


弊端:多個線程都需要判斷鎖,比較耗費資源(內存);


同步函數

public   synchronized    void   add(){}


函數需要被對象調用,那麼函數都有一個所屬對象調用,是this

所以同步函數的鎖是this,




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章