请求好手:在主线程启动子线程后,子线程还在运行,而主线程后已经没有语句可以执行,这时为什么主线程不退出
阅读
在主线程启动子线程后,子线程还在运行,而主线程后已经没有语句可以执行,这时为什么主线程不退出?
public class ProducerConumer {
public static void man(Strings[] args) {
ProductList ps = new ProductList();
Producer px = new Producer(ps, "X");
Consumer ch = new Consumer(ps, "Y");
//以下两个线程会循环执行一些任务,启动后不会马上停止
new Thread(px).start();
new Thread(ch).start();
//疑问就是为何现在主线程启动子线程后没有了代码可执行,而子线程仞在执行,
//按照java高手真经上,此时为何主线程不退出?它在等待着什么?或者主线程退出的条件又有哪些呢?
//还望各位大大高手们赐教,多谢了。
}
}
thread
java多线程问题
java主线程退出问题
------解决方案--------------------
setDaemon
------解决方案--------------------
执行完第八行时,主线程运行完了,只有子线程还在运行。
lz凭什么讲主线程还在运行?
------解决方案--------------------
主线程已经over了,只是子线程还在run。
------解决方案--------------------
主线程已经执行完了 。
只是子线程在执行。
如果你需要在主线程执行完之后 子线程也退出。
可以讲子线程设置为守护线程 用setDaemon(true) 方法。 注意该方法必须要在线程运行之前调用
阅读
上一篇:父类引用指向子类对象的有关问题 下一篇:返回列表