Java 中断异常发生原因
在检查对象类下的Java 中断异常发生原因,java,interrupted-exception,Java,Interrupted Exception,在检查对象类下的notifyAll()方法的javadoc时,通过以下几行: 如果当前线程在等待之前或等待期间被任何线程中断,则 抛出InterruptedException。在如上所述恢复此对象的锁定状态之前,不会引发此异常 重点是: 当前线程在等待时被中断 这意味着什么?线程在等待时可以被中断吗? 若有,原因为何?它的用途是什么?如果另一个线程调用,则线程在等待时可能会中断: waitingThread.interrupt(); 当然,如果您自己做,也可以使用框架来管理线程(通常是执行器服
notifyAll()
方法的javadoc时,通过以下几行:
如果当前线程在等待之前或等待期间被任何线程中断,则
抛出InterruptedException。在如上所述恢复此对象的锁定状态之前,不会引发此异常
重点是:
当前线程在等待时被中断
这意味着什么?线程在等待时可以被中断吗?
若有,原因为何?它的用途是什么?如果另一个线程调用,则线程在等待时可能会中断:
waitingThread.interrupt();
当然,如果您自己做,也可以使用框架来管理线程(通常是执行器服务),并调用一些中断底层线程的方法(例如shutdownNow
或调用future.cancel(true);
关于submit
方法返回的future)
中断机制是Java如何让一个线程告诉另一个线程停止它正在做的事情,因此非常有用。如果另一个线程调用,则线程可以在等待时中断:
waitingThread.interrupt();
当然,如果您自己做,也可以使用框架来管理线程(通常是执行器服务),并调用一些中断底层线程的方法(例如shutdownNow
或调用future.cancel(true);
关于submit
方法返回的future)
中断机制是Java如何让一个线程告诉另一个线程停止它正在做的事情,因此非常有用。Java中“线程被中断”的意思是线程的中断标志已经设置,仅此而已。然而,使线程等待的大多数JDK方法会立即发现这一点并退出等待状态,抛出InterruptedException。你所读到的方法就是这样 Java中“线程被中断”的意思是线程的中断标志已经设置,仅此而已。然而,使线程等待的大多数JDK方法会立即发现这一点并退出等待状态,抛出InterruptedException。你所读到的方法就是这样 它意味着它中断了它的等待状态。它意味着它中断了它的等待状态。它实际上只是
cancel(true)
:-)事实上:中断机制声明“停止它正在做的事情”,事实上:中断机制声明“停止它正在做的事情”,所以它在等待时实际上在做什么。我认为它正在等待资源,所以它是获得资源还是处于运行/可运行状态?实际上它只是cancel(true)
:-)事实上:中断机制声明“停止它正在做的事情”,事实上:中断机制声明“停止它正在做的事情”,所以它在等待时实际上在做什么。我认为它正在等待资源,所以它是获取资源还是处于运行/可运行状态?