2016 - 2024

感恩一路有你

java主线程与子线程 我想知道JAVA多线程中,如何让一个线程去等待N个线程执行完成后,再执行?

浏览量:1337 时间:2021-03-30 15:05:20 作者:admin

我想知道JAVA多线程中,如何让一个线程去等待N个线程执行完成后,再执行?

等一下,不然就睡觉吧

谢谢你的邀请

!在回答之前,让我们先看看线程的几种状态以及状态切换的过程,如下图所示(我不想画,在线盗窃):

线程退出必须是初始化后的任何状态(不包括终止状态)退出。

线程在启动后独立运行。正常情况下,他们不能在启动后进行干预。他们只能等待跑步的结束。如果他们想干预,他们只能在共享内存区域中添加一个状态标识符。实际上,JDK已经有了一个内置的状态标识符,即中断标识符。它调用中断方法,但是处于等待状态的线程将抛出中断异常,并且它可以优化add状态变量。

总结起来,有三种方法:

1。等待线程完成自己的执行(这是最优雅的,但没有讨论的意义)。

2. 调用中断方法判断中断标识。但是,在等待状态下,会抛出异常,不能认为是优雅的。示例代码如下:

3。自己添加中断状态标志。示例代码如下:

摘要:

等待状态:在此状态下,exit只能调用中断方法。

阻塞状态:有两种类型:一种是可中断的,调用中断方法退出;另一种是不可中断的,只有运行后才能退出。

就绪状态:等待CPU调度,无干预。

运行状态:添加您自己的共享状态标识符。

最后的“优雅退出”代码如下:

java主线程与子线程 java线程 java主线程等待子线程结束

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。