天天看點

并發程式設計注意事項--修複線程不安全的方法分享

轉自:http://www.java265.com/JavaJingYan/202110/16349834021556.html

下文講述java中并發程式設計中需注意事項,如下所示:

并發程式設計一般需注意線程安全:
  1.注意共享變量
      共享變量可供多個線程同時通路
  2.注意可變變量 
      

例:

以下a變量

//線程不安全的類
public class UnsafeCount {
    private int a = 0;    //該變量是共享的
    public void increase() {    //這裡沒有同步機制,多個線程可以同時通路
        a++;    //該變量是可變的
    }
    public int getA() {
        return a;
    }
}      

下面有4種方式可修複

1.不線上程中共享變量,将變量變為非共享      
public int add(int  a){
return ++a; 
}      
2.将狀态變量修改為不可變的變量。      
private final  int a = 0;      
3.使用同步代碼塊      
public synchronized  void increase() {
       a++;
}      
4.使用原子變量類      
private AtomicInteger a;
 public void increase() {
        a.getAndAdd(1);
 }      

繼續閱讀