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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39433171/article/details/81867732

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

猜你喜欢

转载自blog.csdn.net/weixin_39433171/article/details/81867732