1. 程式人生 > >java多線程讀一個變量需要加鎖嗎?

java多線程讀一個變量需要加鎖嗎?

多線程 final關鍵字 一個 ati 關鍵字 java多線程 其他 同時 關聯

  1. 如果只是讀操作,沒有寫操作,則可以不用加鎖,此種情形下,建議變量加上final關鍵字;
  2. 如果有寫操作,但是變量的寫操作跟當前的值無關聯,且與其他的變量也無關聯,則可考慮變量加上volatile關鍵字,同時寫操作方法通過synchronized加鎖;
  3. 如果有寫操作,且寫操作依賴變量的當前值(如:i++),則getXXX和寫操作方法都要通過synchronized加鎖。

java多線程讀一個變量需要加鎖嗎?