我有一个情境,其中线程 T1 加入了线程 T2。当线程 T2 被中断时会发生什么,T1 会继续执行还是也会被中断。
我有一个情境,其中线程 T1 加入了线程 T2。当线程 T2 被中断时会发生什么,T1 会继续执行还是也会被中断。
如果线程加入另一个线程,它会等待该线程“死亡”(根据规范)。因此,无论发生什么情况,如果第二个线程停止,等待的线程都将继续运行。
public final void join() throws InterruptedException
等待这个线程死亡。
如果使用join()
方法等待线程T1结束,那么线程T1不一定会被中断,这和线程是否被中断没有关系。
"中断"并不意味着"终止",而join()
方法等待线程终止。当线程被中断时,线程中的代码会决定发生什么。例如,线程可以选择捕获InterruptedException
异常、忽略它并继续运行。