關於多進程安全問題 。 同步數據
synchronized(對象){
需要同步的代碼塊
}
判斷是否需要同步的代碼塊是看數據是否是共享數據
對象如同鎖,持有鎖的京城可以子啊同步中執行,
沒有持有鎖的線程即使獲取CPU的執行權,也進不去同步代碼塊,因爲沒有獲取鎖。
同步的前提
1、必須要有兩個或者兩個以上的線程。
2、必須多個線程使用同一個鎖。
必須保證同步中只有一個線程在執行
弊端:多個線程都需要判斷鎖,比較耗費資源(內存);
同步函數
public synchronized void add(){}
函數需要被對象調用,那麼函數都有一個所屬對象調用,是this
所以同步函數的鎖是this,