如何使“主线程”等待“子线程”执行结束后再继续执行 200

 我来答
就烦条0o
2018-07-26 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
觉得设置一个标记比较好 boolean flag=false;
例如一个子线程:
class childThread extends Thread
{
.....
while(true)
{
public void run()
{
.......
flag=true//当子线程运行完成后标记设为true
}
}
}

然后根据该标记的值判断子线程是否执行。

你可以这样写:
....
childThread ct=new childThread();

ct.start();

if(ct.flag == false)
{
Thread.sleep(10);[color=#00FF00]当子线程没有执行完毕,就让主线程等待}[/color].....

如果不设置标记判断 而是直接让主线程 Thread.sleep(xxx)睡眠是不合理的。
原因是:
由于主线程和子线程是并发运行的 睡眠的时间不好控制 如果时间太短 可能子线程没有运行完主线程就又开始运行了。如果时间太长 影响程序的执行效率 所以这个时间是不好控制的。
上面有的直接 Thread.sleep(100);完全是想当然的想法。 直接这样写有可能是会出错的 你可以试下。
所以我觉得还是设置一个标记比较好。
炽天之焰
2017-07-28 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.8万
采纳率:85%
帮助的人:5436万
展开全部
在主线程里调用子线程,这样“子线程”执行结束后,才会继续执行主线程的后续程序。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式