需求:
main方法中创建了线程,子线程没有执行结束的时候主线程执行结束了,利用join又不能保证并发执行,目的是主线程等待其子线程执行完成之后退出
实现:
利用Hook实现jvm的等待执行
业务线程:
class CustomerThread implements Runnable { @Override public void run() { System.out.println("***************CustomerThread********"); try { Thread.sleep(1 * 1000l); System.out.println("***************CustomerThread end********"); } catch (InterruptedException e) { e.printStackTrace(); } } }
main方法调用:
public static void main(String[] args) throws Throwable { for (int i = 0; i < 10; i++) { Thread t = new Thread(new CustomerThread()); Runtime.getRuntime().addShutdownHook(t); } }
jvm调用满足需求
相关推荐
Java多线程--让主线程等待所有子线程执行完毕
Java多线程--等待所有子线程执行完的五种方法 Java多线程--等待所有子线程执行完的五种方法 Java多线程--等待所有子线程执行完的五种方法 Java多线程--等待所有子线程执行完的五种方法 Java多线程--等待所有子线程...
java 子线程通过观察者模式通知主线程
Java主线程等待所有子线程执行完毕在执行,其实在我们的工作中经常的用到,本篇文章就介绍了Java多线程--让主线程等待所有子线程执行完毕在执行,有需要的可以了解一下。
非常实用不解释,用了才知道 个人收藏的一部分资料将陆续给大家上传
子线程更新主线程数据(再谈多线程)
数据量很大百万条记录,因此考虑到要用多线程并发执行,在写的过程中又遇到问题,我想统计所有子进程执行完毕总共的耗时,在第一个子进程创建前记录当前时间用System.currentTimeMillis()在后一个子进程结束后...
下面小编就为大家带来一篇C#子线程执行完后通知主线程的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
我就废话不多说了,还是直接看代码吧! from time import ctime import threading import time def a(): #for i in range(5): print('Program a is running... at ', ctime(),u'.... time.sleep(0.2) ...
Unity除了一些基本的数据类型,几乎所有的API都不能在子线程中调用,如果项目中有一段很耗时操作,unity可能会出现“卡死...因此针对这个问题再加上查找了一些资料,弄出了一个小工具,可以子线程与主线程的相互访问。
本资源详细介绍了主线程和子线程之间的通信过程,通过实例讲解了参数如何传递
子线程任务发生异常,主线程事务如何回滚
c#子线程如何读取及设置主线程ui的值,自己录的一个小视频,方便理解,比较菜鸟的方法,请勿喷!
C# Winfrom必须掌握的技术,主线程显示数据,子线程获取数据,这是我做项目实际用到的技术。
C#子线程刷新主线程示例源码 功能介绍: 使用线程操作 1、实时显示当前时间 2、输入加数和被加数,自动出现结果 技术特点: 使用了多线程实现了子线程刷新主线程 ,使用委托刷新主线程。 注意: 开发环境为...
Visual C++源代码 22 如何从子线程更新主线程数据Visual C++源代码 22 如何从子线程更新主线程数据Visual C++源代码 22 如何从子线程更新主线程数据Visual C++源代码 22 如何从子线程更新主线程数据Visual C++源代码...
下面小编就为大家分享一篇Java父线程(或是主线程)等待所有子线程退出的实例,具有很好的参考价值,希望对大家有所帮助
Handler消息传递详解,子线程到子线程,主线程到子线程,子线程到主线程 三种消息,Looper,Handler工作机制详解 https://blog.csdn.net/shoneworn/article/details/80447651
主线程如何捕获子线程的异常---马克-to-win java视频的介绍