Alf*_*red 3 java jvm signals interrupted-exception
正如标题所暗示的,当得到InterruptedException时,我们是否需要强制jvm退出?我问的原因是我有点与(Unix)中断信号混淆.当我们在运行java应用程序时键入Ctrl-C时,阻塞线程是否会出现InterruptedException?
所以简单来说,
1)何时以及为什么InterruptedException被抛出?
2)当JVM从外部中断或终止时(如Unix命令),线程是否会中断?
谢谢
不,通常你不会退出JVM以响应InterruptedException.
InterruptedException在另一个线程调用其interrupt()方法之后,可能会在一个线程中引发.它与硬件中断或操作系统信号无关.中断是一种告诉线程停止正在执行的操作并尽快退出的方法,而不会使共享内存处于损坏状态.
线程只有在明确描述它们如何响应中断时才会被中断.通常,这将例如响应于诸如按下"取消"按钮之类的用户交互来完成.
通常,中断只影响单个线程,应用程序的其余部分继续运行.但是,我可以设想在JVM中安装一个信号处理程序,它通过干净地关闭整个服务器来响应信号; 这很可能会导致请求进程线程和其他线程中断.