成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

warmcheng / 3027人閱讀

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

示例
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());
    }
}

運行結(jié)果如下:

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75350.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    darkbaby123 評論0 收藏0

發(fā)表評論

0條評論

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