程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 實例講授Java並發編程之變量

實例講授Java並發編程之變量

編輯:關於JAVA

實例講授Java並發編程之變量。本站提示廣大學習愛好者:(實例講授Java並發編程之變量)文章只能為提供參考,不一定能成為您想要的結果。以下是實例講授Java並發編程之變量正文


編寫線程平安須要關懷的:

1.同享的變量
2.可變的變量

同享意味著多個線程可以同時拜訪,可變意味著其值在性命周期可以轉變。
例如以下count 變量:

//線程不平安的類
public class UnsafeCount {
    private int count = 0;    //該變量是同享的
    public void increase() {    //這裡沒有同步機制,多個線程可以同時拜訪
        count++;    //該變量是可變的
    }
    public int getCount() {
        return count;
    }
}

有4種方法可以修復這個成績:

1.不在線程中同享該狀況變量,可以將變量封裝到辦法中(無狀況的對象必定是線程平安的);由於辦法中變量是每一個線程獨有的,和睦其它線程同享。好比:

public int add(int count){
return ++count;//這裡也能夠說無狀況的對象必定是線程平安的
}

2.將狀況變量修正為弗成變的變量。

private final  int count = 0;

3.在拜訪狀況變量應用同步戰略。

public synchronized  void increase() {
count++;
}

4.應用原子變量類。

 private AtomicInteger count;
 public void increase() {
  count.getAndAdd(1);
 }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved