一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java父線程(或是主線程)等待所有子線程退出的實例

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

2021-02-20 11:51牛孝祖 Java教程

下面小編就為大家分享一篇Java父線程(或是主線程)等待所有子線程退出的實例,具有很好的參考價值,希望對大家有所幫助

實例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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);//計數器
   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();
  }

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

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

原文鏈接:http://www.cnblogs.com/niuxiaozu/p/5973937.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 九九99亚洲精品久久久久 | 校园纯肉H教室第一次 | 日本高清在线观看天码888 | 性派对videofreeparty | 秘书喂奶好爽一边 | 国产成人福利美女观看视频 | 国产性做久久久久久 | 高清不卡免费一区二区三区 | 暖暖 免费 高清 日本 在线 | 色悠久久久久综合欧美99 | 精品国产美女AV久久久久 | 99ri在线精品视频在线播放 | 草莓社区 | 欧美一区二区三区免费观看视频 | 日日干天天爽 | 日本一区视频在线 | 日韩丝袜在线观看 | 猫咪社区在线播放 | 亚洲精品无码不卡在线观看 | 成人影院www在线观看 | 男人操男人 | 亚洲+欧美+国产+综合 | www一级片 | 午夜影视在线观看 | 久久综合香蕉久久久久久久 | 青青草原手机在线视频 | 日本妻子迷妹网 | 九九精品成人免费国产片 | 闺蜜调教我做她的脚奴 | 亚洲国产成人综合 | 久久草福利自拍视频在线观看 | 青草青青在线 | www.四虎网站 | 久久人妻无码毛片A片麻豆 久久热这里只有 精品 | 亚洲精品91大神在线观看 | 久久亚洲国产成人影院 | 红色播放器 | www四虎| 免费精品视频在线 | 色婷婷狠狠 | 日韩国产成人精品视频 |