国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java并發編程學習之cas-AtomicInteger(二)

warmcheng / 3021人閱讀

摘要:示例運行結果如下在多線程無鎖的情況下,總是小于等于,而因為原子性的方法總是等于。

示例
public class AtomicDemo {
    static int num1 = 0;
    static AtomicInteger num2 = new AtomicInteger(0);

    static class Thread1 extends Thread {
        @Override
        public void run() {
            try {
                sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            num1++;
        }
    }

    static class Thread2 extends Thread {
        @Override
        public void run() {
            try {
                sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            num2.incrementAndGet();
        }
    }

    public static void main(String[] args) throws InterruptedException {
        for (int i = 0; i < 1000; i++) {
            new Thread1().start();
            new Thread2().start();
        }
        Thread.sleep(2000);
        System.out.println("num1=" + num1);
        System.out.println("num2=" + num2.get());
    }
}

運行結果如下:

在多線程無鎖的情況下,num1總是小于等于1000,而num2因為原子性的方法總是等于1000。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75350.html

相關文章

  • java并發編程習之線程池-AbstractExecutorService()

    摘要:抽象類,實現了的接口。將任務封裝成提交任務主要方法在任務是否超時超時時間任務書用于存放結果的,先完成的放前面。 AbstractExecutorService抽象類,實現了ExecutorService的接口。 newTaskFor 將任務封裝成FutureTask protected RunnableFuture newTaskFor(Runnable runnable, T va...

    Jokcy 評論0 收藏0
  • java并發編程習之Fork/Join 框架-RecursiveTask()

    摘要:示例計算一組數據,設置閾值為,也就是說每次計算的數量不超過個。總數總數運行結果如下可以看出,兩次結果是一樣的。創建繼承的類,實現方法,這里主要是計算以及拆分任務合并結果。 示例 計算一組數據,設置閾值為50,也就是說每次計算的數量不超過50個。 public class RecursiveTaskDemo extends RecursiveTask { private stat...

    TerryCai 評論0 收藏0
  • java并發編程習之線程的生命周期-start(

    摘要:與執行方法,是用來啟動線程的,此時線程處于就緒狀態,獲得調度后運行方法。執行方法,相對于普通方法調用,在主線程調用。程序是順序執行的,執行完才會執行下面的程序。 start與run 執行start方法,是用來啟動線程的,此時線程處于就緒狀態,獲得調度后運行run方法。run方法執行結束,線程就結束。 執行run方法,相對于普通方法調用,在主線程調用。程序是順序執行的,執行完才會執行下...

    bigdevil_s 評論0 收藏0
  • java并發編程習之synchronize(一)

    摘要:線程安全問題在并發編程學習之基礎概念提到,多線程的劣勢之一,有個線程安全問題,現在看看下面的例子。那么,該怎么解決呢,很簡單,在方法前加個同步鎖。運行結果如下有兩種情況,是因為看誰先搶占鎖,但是輸出的算法結果是正確的。 線程安全問題 在java并發編程學習之基礎概念提到,多線程的劣勢之一,有個線程安全問題,現在看看下面的例子。 public class NotSafeDemo { ...

    Elle 評論0 收藏0
  • java并發編程習之synchronize(

    摘要:的應用方式代碼塊作用范圍在中,作用對象是調用這個代碼塊的對象。方法進來了出來了運行的結果如下等把方法執行完,釋放了的鎖,才開始執行。靜態方法運行的結果如下等待執行完才執行,說明是類鎖類所的另外一種形式運行結果如下 synchronized的應用方式 代碼塊:作用范圍在{}中,作用對象是調用這個代碼塊的對象。 方法:作用范圍是一個方法,作用對象是調用這個方法的對象。 靜態方法:作用范圍...

    darkbaby123 評論0 收藏0

發表評論

0條評論

warmcheng

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<