最近在和同事讨论 java 主线程和子线程之间的关系,自己也到网上搜索了下,发现各种答案都有,有些还是互相矛盾的。经过测试自己得出以下几个结论,跟大家分享下,如果有错误,欢迎大牛指正,帮助我这只小菜鸟。废话不多说,直接上结论: (一)Main 线程是个非守护线程,不能设置成守护线程。 这是 ...
一 Main线程是个非守护线程,不能设置成守护线程。 这是因为,main线程是由java虚拟机在启动的时候创建的。main方法开始执行的时候,主线程已经创建好并在运行了。对于运行中的线程,调用Thread.setDaemon 会抛出异常Exception in thread main java.lang.IllegalThreadStateException。测试代码如下: java view ...
2018-01-05 08:44 1 14817 推荐指数:
最近在和同事讨论 java 主线程和子线程之间的关系,自己也到网上搜索了下,发现各种答案都有,有些还是互相矛盾的。经过测试自己得出以下几个结论,跟大家分享下,如果有错误,欢迎大牛指正,帮助我这只小菜鸟。废话不多说,直接上结论: (一)Main 线程是个非守护线程,不能设置成守护线程。 这是 ...
今天有一个需求是:在一个方法中开启了一个子线程来执行操作,返回值依赖于子线程的执行结果,这样如果要返回正确的值,就需要开启子线程后 主线程等待子线程,然后子线程执行结束后,主线程再继续执行。 主线程等待子线程需要用到:CountDownLatch 直接上代码: public ...
工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了. 一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线程的流程, 往往需要让主线程指定后, 等待子线程的完成 ...
引用自 主线程退出对子线程的影响--YuanLi 的一段话: 对于程序来说,如果主进程在子进程还未结束时就已经退出,那么Linux内核会将子进程的父进程ID改为1(也就是init进程),当子进程结束后会由init进程来回收该子进程。 主线程退出后子线程的状态依赖于它所在的进程,如果进程没有退出 ...
main方法启动两个线程之后主线程结束,其他线程并不终止,网络依然在发送请求,输出依然存在。 正合我意。 public static void main(String[] args) { // TODO Auto-generated method stub ...
记一次主线程等待子线程结束的多种方法的学习 在学习多线程时,最开始遇到的问题其实是“计算子线程运行时间”,写到最后发现本文和标题更为符合,但是仍然基于问题:“在主线程中获取子线程的运行时间”。 while循环 对于“主线程如何获取子线程总运行时间”的问题,最开始想到的是使用while循环 ...
1.join 将子线程插入到主线程中,主线程和子线程合并为顺序执行的线程 2.CountDownLatch 3.CyclicBarrier ...
Java多线程之以7种方式让主线程等待子线程结束 程的运行时间”。 while循环 对于“主线程如何获取子线程总运行时间”的问题,最开始想到的是使用while循环进行轮询: 但是这样太消耗CPU,所以我在while循环里加入了暂停: 这样做的结果虽然cpu消耗减少,但是数据 ...