导读热词

实例如下:

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父线程(或是主线程)等待所有子线程退出的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

java 父线程_Java父线程(或是主线程)等待所有子线程退出的实例相关推荐

  1. Java多线程、主线程等待所有子线程执行完毕、共享资源

    1.Java创建与启动线程 Java提供两种方式创建和启动线程:1.直接Thread类,2.实现Runable接口. 1.1  继承Thread类 public class myThread exte ...

  2. java主线程等待所有子线程执行完毕再执行

    java主线程等待所有子线程执行完毕在执行,这个需求其实我们在工作中经常会用到,比如用户下单一个产品,后台会做一系列的处理,为了提高效率,每个处理都可以用一个线程来执行,所有处理完成了之后才会返回给用 ...

  3. 主线程等待所有子线程结束的4种方法

    目录 主线程不等待子线程全部结束 1.使用CountDownLatch 2.同步屏障CyclicBarrier 2.1.CyclicBarrier使用 2.2.CyclicBarrier复用 2.3. ...

  4. python 主程序等待 子线程_Python多线程中主线程等待所有子线程结束的方法

    Python多线程中主线程等待所有子线程结束的方法 发布时间:2020-07-30 14:39:04 来源:亿速云 阅读:77 作者:小猪 这篇文章主要讲解了Python多线程中主线程等待所有子线程结 ...

  5. Java主线程等待所有子线程执行完毕再执行解决办法(转)

    方法一: Thread.join()方法,亲测可行,thread.join()方法 [java] view plain copy Vector<Thread> ts = new Vecto ...

  6. [Java][Android] 多线程同步-主线程等待全部子线程完毕案例

    有时候我们会遇到这种问题:做一个大的事情能够被分解为做一系列相似的小的事情,而小的事情无非就是參数上有可能不同样而已! 此时,假设不使用线程,我们势必会浪费许多的时间来完毕整个大的事情.而使用线程的话 ...

  7. 主线程和子线程的关系(讨论主线程结束,子线程是否要回收)

    主线程和子线程,在操作系统里面其实是一样的,没有本质区别.至于主线程结束,子线程是否要回收,下面有两种比较特殊的情况. 第一种: 主线程退出了,子线程还可以执行. 主要是因为pthread_exit函 ...

  8. 主线程等待几个子线程执行完成方案

    有时,为了程序的性能,我们有必要对程序中的for循环(含有sql/rpc操作)进行并发处理,要求是并发处理完之后才能继续执行主线程.现给出如下两种方案: 1. CountDownLatch Java代 ...

  9. java等待5秒_Java并发编程-主线程等待子线程解决方案

    主线程等待所有子线程执行完成之后,再继续往下执行的解决方案 public class TestThread extends Thread { public void run() { System.ou ...

最新文章

  1. 独家 | 如何手动优化神经网络模型(附链接)
  2. 报名 | IBM苏中:从深蓝到AlphaGo,从大数据到认知商业
  3. H264 Profile对比分析
  4. ols残差_python数据关系型图表散点图系列残差分析图
  5. Java创建一个学生类
  6. 第一个MVVM wp7程序
  7. android 产品上线流程图,产品上线工作流程(试行)20050302.doc
  8. 尝试docker1.12内置swarm
  9. Edge浏览器快捷键
  10. 博士申请 | 浙江大学孙优贤院士课题组招收智能无人系统方向硕士生/博士生
  11. 高通证实MSM8998就是骁龙835
  12. 联想拯救者y9000x和R9000X有什么区别 选哪个
  13. mysql备份导出数据库结构_MySql数据库导出完整版(导出数据库,导出表,导出数据库结构)详解...
  14. 鸢尾花数据集的线性多分类
  15. vue3+vite UC浏览器兼容
  16. 【LeetCode-SQL】196. 删除重复的电子邮箱
  17. mysql数据被截断_Mysql5.7中使用groupconcat函数数据被截断的问题完美解决方法
  18. 自己动手搭建Fabric网络,修改当前工作目录名之后出现的错误
  19. 一文分析 Web3 尚未被主流采用的 6 个主要原因
  20. VMware Workstation 安装中标麒麟V6桌面版操作系统

热门文章

  1. Runloop, 多线程
  2. Struts和Spring使用的模板初探
  3. struts1-2,springMVC原理基本对比(单例,多例)-servlet与filter区别
  4. 计算比尔盖茨財富的方法
  5. CXF做的webservice简单例子
  6. oracle网站wget下载
  7. SSAS : 如何禁用SSAS的QueryLog
  8. 2018年计算机职称考试冲刺,2018年中级会计职称考试考前30天冲刺计划和学习方法...
  9. alert()的功能_前端实现简单的图片上传小图预览功能
  10. mysql random_Mysql中随机函数笔记