Java线程休眠和中断异常

Jer*_*non 10 java multithreading sleep exception

  1. 为什么sleep线程需要try catch来捕获Interrupted Exception?
  2. 为什么睡眠会发出中断异常错误?这是我真正想要在java编程中找到的两个问题,我一直在谷歌搜索,我还没有找到一个明确的解释是为什么这两件事发生.

Jav*_*ier 5

一个InterruptedException当线程被阻塞,则抛出/等待,它是由另一个线程中断(借助Thread.interrupt)。将其视为立即终止的请求,不会受到Thread.stop().

这样,即使您指示一个线程休眠数年,您也可以中断该线程。

推荐的做法是在InterruptedException抛出a 时中止正在处理的任何内容。


jse*_*ano 2

  1. 因为如果你中断一个线程,它就无法完成它的正常执行,你需要捕获它以便准备做某事。
  2. 因为等待的线程与被中断的线程不同,等待的线程可以恢复,但被中断的线程已经完成执行。