JAVA 解决主线程等待子线程全部执行结束后再执行的方法

本文介绍了一种在主线程中监控子线程执行状态的方法,通过维护一个线程列表并检查每个线程的状态来确保所有子线程完成后再继续主线程的执行。

这段时间在项目中遇到了线程的问题,方法体是有返回值的,在方法体内调用了一个线程,最后有数据统计,所以会出现子线程没有执行完成的情况下,主线程就已经走完了,导致数据统计不完整,为了拿到完整的数据,故有以下方法。
监控子线程是否都执行完毕,先看代码截图及注释(写的比较糟,但也不失为一种方法,提供一个思路)
这里写图片描述
将创建的线程放进自定义的list1中,因为不知道会有多少个线程,所以采用了while循环,在循环体内遍历list1拿到他们的状态,初始化为-99,在线程的run方法最后,及线程执行结束的最后一部重新定义线程状态,即this.statues=99;
接下来,判断状态改为99的线程,有一个,就m– ,随即删掉一个线程,当m为0的时候,while走完,即代表子线程已经走完,这时候主线程会继续走,这就简单的实现了主线程等待子线程执行完毕的小功能。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值