首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在另一个线程中启动线程并使其保持活动状态?

如何在另一个线程中启动线程并使其保持活动状态?
EN

Stack Overflow用户
提问于 2011-12-11 17:12:13
回答 3查看 4.6K关注 0票数 1

在第一线程中,我需要创建另一个线程。

代码语言:javascript
复制
Thread thread2 = new Thread(bworker);
thread2.start(); 

问题是,当第一线程完成它的作业时,thread2 get会终止,尽管它有更多的工作要做。

我如何让它存活到它完成它的工作?

我不想使用join,因为它会阻塞第一线程流。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-11 17:19:02

第二个线程不会在第一个线程结束时自动终止。这不是线程的工作方式。唯一类似的情况是,如果没有活动的非守护进程线程,则整个进程将终止。假设这不是这里的情况,我认为您的诊断在第二个线程周围搞砸了-或者它因为其他原因而死亡。

票数 3
EN

Stack Overflow用户

发布于 2011-12-11 17:20:06

要知道线程是否处于活动状态,thread.isAlive()是更好的选择。

您可以使用while循环和isAlive()来阻止线程被终止

票数 0
EN

Stack Overflow用户

发布于 2011-12-11 17:38:58

尝试在第一线程的run()方法外声明第二个线程,并在第一线程的run()方法内调用start()。这可能会解决你的问题。如果没有,那么第二个线程的代码就有问题。

示例:http://pastebin.com/rx2eYQG2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8462945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档