最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java父線程(或是主線程)等待所有子線程退出的實例

 更新時間:2017年11月24日 09:12:00   作者:牛孝祖  
下面小編就為大家分享一篇Java父線程(或是主線程)等待所有子線程退出的實例,具有很好的參考價值,希望對大家有所幫助

實例如下:

static void testLock1(){
   
   final AtomicInteger waitCount = new AtomicInteger(30000);
   final Object waitObj = new Object();
   System.out.println("start"+System.currentTimeMillis());
   for (int i=0;i<30000;i++) {
    new Thread(new Runnable() {
     @Override
     public void run() {
      try {
       Thread.sleep(10);
      } catch (InterruptedException e) {
       e.printStackTrace();
      }
      waitCount.decrementAndGet();
      synchronized(waitObj){
       waitObj.notifyAll();
      }
     }
    }).start();
   }
   while( waitCount.intValue()>0) {
    synchronized (waitObj) {
     if(waitCount.intValue()>0){
      try {
       waitObj.wait();
      } catch (InterruptedException e) {
       e.printStackTrace();
      }
     }
    }
   }
   System.out.println("ok"+System.currentTimeMillis());
  }
  static void testLock2(){
   
   final CountDownLatch workLauch = new CountDownLatch(30000);//計數(shù)器
   System.out.println("start2"+System.currentTimeMillis());
   for (int i=0;i<30000;i++) {
    new Thread(new Runnable() {
     @Override
     public void run() {
      try {
       Thread.sleep(10);
      } catch (InterruptedException e) {
       e.printStackTrace();
      }
      workLauch.countDown();
     }
    }).start();
   }
   try {
    workLauch.await();
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   System.out.println("ok2"+System.currentTimeMillis());
  }
  public static void main(String[] args) {
   testLock1();
   testLock2();
  }

第一種是我隨便寫的實現(xiàn),有點糙。第二種是朋友告知的一個類,java的concurrent中的,據(jù)說還有幾個相似功能的類實現(xiàn)。這30000個線程 時間差大概是不到200ms的樣子

以上這篇Java父線程(或是主線程)等待所有子線程退出的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java實現(xiàn)注冊郵箱激活賬戶實例代碼

    Java實現(xiàn)注冊郵箱激活賬戶實例代碼

    本篇文章主要介紹了Java實現(xiàn)郵箱激活賬戶實例代碼,這里整理了詳細的代碼,具有一定的參考價值,有需要的小伙伴可以參考下。
    2017-07-07
  • Spring Cloud gateway 網(wǎng)關如何攔截Post請求日志

    Spring Cloud gateway 網(wǎng)關如何攔截Post請求日志

    這篇文章主要介紹了Spring Cloud gateway 網(wǎng)關如何攔截Post請求日志的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • idea 離線安裝lombok插件的方法步驟(圖文)

    idea 離線安裝lombok插件的方法步驟(圖文)

    這篇文章主要介紹了idea 離線安裝lombok插件的方法步驟(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Java數(shù)組的基本操作方法整理

    Java數(shù)組的基本操作方法整理

    這篇文章主要給大家介紹了關于Java中數(shù)組的定義和使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • Spring Boot 2 Thymeleaf服務器端表單驗證實現(xiàn)詳解

    Spring Boot 2 Thymeleaf服務器端表單驗證實現(xiàn)詳解

    這篇文章主要介紹了Spring Boot 2 Thymeleaf服務器端表單驗證實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • logback 實現(xiàn)給變量指定默認值

    logback 實現(xiàn)給變量指定默認值

    這篇文章主要介紹了logback 實現(xiàn)給變量指定默認值操作,具有很好的參考家價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java StringBuffer類與StringBuilder類用法實例小結

    Java StringBuffer類與StringBuilder類用法實例小結

    這篇文章主要介紹了Java StringBuffer類與StringBuilder類用法,結合實例形式總結分析了Java StringBuffer類與StringBuilder類的功能、原理及添加、刪除、替換、截取等操作實現(xiàn)技巧,需要的朋友可以參考下
    2019-03-03
  • jmeter基礎邏輯控制器之if控制器的使用

    jmeter基礎邏輯控制器之if控制器的使用

    在實際工作中,當使用JMeter做性能腳本或者接口腳本時,當遇到需要對不同的條件做不同的操作時,我們可以使用JMeter中if控制器來實現(xiàn),本文就詳細的介紹一下如何使用
    2021-11-11
  • SpringBoot項目調(diào)優(yōu)及垃圾回收器的比較詳解

    SpringBoot項目調(diào)優(yōu)及垃圾回收器的比較詳解

    這篇文章主要介紹了SpringBoot項目調(diào)優(yōu)及垃圾回收器的比較詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Spring框架學習常用注解匯總

    Spring框架學習常用注解匯總

    這篇文章主要為大家介紹了Spring框架學習中一些經(jīng)常用的注解匯總及示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10

最新評論

梧州市| 清远市| 县级市| 石屏县| 叶城县| 双城市| 呈贡县| 广德县| 乌拉特前旗| 绿春县| 汽车| 宕昌县| 喀喇沁旗| 济源市| 志丹县| 贵州省| 南皮县| 甘肃省| 安溪县| 灯塔市| 赤水市| 泰和县| 中宁县| 赣榆县| 铜山县| 大石桥市| 樟树市| 井陉县| 黄石市| 噶尔县| 乐亭县| 八宿县| 西林县| 伊通| 拉孜县| 思茅市| 晋中市| 汉沽区| 迁安市| 乌鲁木齐县| 伊川县|