<xmp id="isueg"><nav id="isueg"></nav>
  • <dd id="isueg"><nav id="isueg"></nav></dd>
    <xmp id="isueg">
  • <center id="isueg"></center>
    <nav id="isueg"><code id="isueg"></code></nav>
    專注Java教育12年 全國咨詢/投訴熱線:400-8080-105

    首頁 hot資訊 使用CountDownLatch模擬高并發場景

    使用CountDownLatch模擬高并發場景

    更新時間:2021-08-13 11:25 來源:動力節點 瀏覽71次

    導入java.util.concurrent.CountDownLatch;
    導入java.util.concurrent.ExecutorService;
    導入java.util.concurrent.Executors;
    導入java.util.concurrent.atomic.AtomicInteger; 

    public  class IncrTest {
         public  static  void concurrenceTest() {
             /**
             * 模擬高并發代碼
             */ 
            final AtomicInteger atomicInteger = new AtomicInteger(0 );
            最終CountDownLatch countDownLatch = new CountDownLatch(1000); //  相當于一個計數器,當一切就緒后,一起執行,模擬多并發,保證并發量
            final CountDownLatch countDownLatch2 = new CountDownLatch(1000); //  確保所有線程在打印 atomicInteger 
            ExecutorService executorService = Executors.newFixedThreadPool(10 );
            嘗試{
                對于(int i = 0; 我 < 1000; 我++ ) {
                    executorService.submit( new Runnable() {
                        @覆蓋
                        公共 無效運行(){
                            嘗試{
                                countDownLatch.await(); //一直阻塞當前線程,直到定時器值為0,保證并發并發
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            //每個線程增加1000次,每次增加1 
                            for ( int j = 0; j < 1000; j++ ) {
                                atomicInteger.incrementAndGet();
                            }
                            countDownLatch2.countDown();
                        }
                    });
                    countDownLatch.countDown();
                }
                countDownLatch2.await(); //  確保所有線程都執行
                完畢 System.out.println(atomicInteger);
                executorService.shutdown();
            }捕獲(異常 e){
                e.printStackTrace();
            }
        }
        public  static  void main(String[] args)拋出InterruptedException {
            競賽測試();
        }
    }

    以上就是動力節點小編介紹的"使用CountDownLatch模擬高并發場景",希望對大家有幫助,想了解更多可查看Java在線學習。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

    提交申請后,顧問老師會電話與您溝通安排學習

    免費課程推薦 >>
    技術文檔推薦 >>

    返回頂部
    亚洲AV女人的天堂在线观看