hyqd.net
当前位置:首页 >> 主线程退出子线程 >>

主线程退出子线程

public class demo { public static demo1 d1; public static void main(string args[]) { new thread(new runnable() { public void run() { d1 = new demo1(); } }).start(); try { thread.currentthread().sleep(10); } catch (interruptedexception e) { // todo auto-

不会的,线程设计的初衷就是相互独立运行,互相之间不会影响,如果主线程的关闭影响子线程了,那就违背设计的初衷了

你应该换成main函数运行,abcd就一定会打印出来了 问题并不是出在主线程和子线程身上,事实上Java似乎也没有严格主线程和子线程的概念,取而代之的是普通线程和后台线程 但是这里你采用@Test来运行代码,而@Test是JUnit测试框架使

能说具体些么?按照正常的线程思路,主线程本来就和子线程无关了,当主线程创建了子线程并运行它以后,主线程会继续执行后续的代码,而子线程则继续执行后续代码,互相之间不会影响,就说你说的问题不需要特别控制,本来就会是这样的.

Thread有守护线程和非守护线程之分. 守护线程在主线程运行结束后,也会结束运行,而非守护线程不会结束. 线程默认都是非守护线程.可以使用thread.setDeamon方法来设置. system.exit(0); 代表退出进程,无论什么线程都退出. 下述代码

TimerTask中定义一个变量isFinish代表主线程是否结束,默认false,在循环处判断,等于true就不再执行子线程了.当主线程调用销毁方法的时候,设置isFinish为true.

会执行.不过设置子线程为依赖线程以后,在主线程退出一段时间后,子线程也会停止的

要实现这个情况,必须知道以下几点1、java中线程的结束是由run方法运行完成后自动结束的2、在main线程(主线程)中,需要得到所有线程的引用.3、知道jdk提供的CountDownLatch的用法例子如下:public static void main(String[] args)

如果你说的是“进程”的话,那么就会退出.一个进程的退出,那么其里面的所有东西都会释放. 但是,如果你是在一个进程里面,建立线程P,然后再在线程P里面创建并且运行线程C1、c2等,那么,当线程P退出的时候,线程c1 c2是不会退出的.

不可能,主线程关闭了,其他线程肯定要关闭.你的主线程肯定还没关闭,他应该还在等待其他线程的结束.调试一下慢慢看清楚.

网站首页 | 网站地图
All rights reserved Powered by www.hyqd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com