Java 当线程上的中断没有等待锁时会发生什么

Java 当线程上的中断没有等待锁时会发生什么,java,multithreading,Java,Multithreading,我有一个疑问,如果我在一个不处于等待状态的线程上调用中断。我知道interrupt()会导致线程在异常中断的情况下提前释放等待。如果我错了,请纠正我。如果您查看的是Java文档,您应该会看到: 如果此线程在调用wait()时被阻塞 如果此线程在I/O操作中被阻塞 如果此线程在选择器中被阻止 如果前面的条件都不成立,则将设置该线程的中断状态 因此,本质上,线程的中断状态将被设置,就是这样 不可以。通过调用中断,不能神奇地使线程抛出中断异常。如果线程不“协作”,它可以忽略任何中断。例如,这个实例甚至

我有一个疑问,如果我在一个不处于等待状态的线程上调用中断。我知道interrupt()会导致线程在异常中断的情况下提前释放等待。如果我错了,请纠正我。

如果您查看的是Java文档,您应该会看到:

如果此线程在调用wait()时被阻塞

如果此线程在I/O操作中被阻塞

如果此线程在选择器中被阻止

如果前面的条件都不成立,则将设置该线程的中断状态

因此,本质上,线程的中断状态将被设置,就是这样

不可以。通过调用
中断
,不能神奇地使线程抛出
中断异常。如果线程不“协作”,它可以忽略任何中断。例如,这个实例甚至不会编译:
try{intx=Integer.parseInt(“0”);}catch(interruptedeexception e){}