草庐IT

Interrupt

全部标签

java - 为什么在 catch InterruptException block 中调用 Thread.currentThread.interrupt()?

为什么要在catchblock中调用Thread.currentThread.interrupt()方法? 最佳答案 这样做是为了保持状态。当您捕获InterruptedException并将其吞下时,您基本上可以防止任何更高级别的方法/线程组注意到中断。这可能会导致问题。通过调用Thread.currentThread().interrupt(),你设置了线程的中断标志,所以更高级别的中断处理程序会注意到它并可以适本地处理它。JavaConcurrencyinPractice在第7.1.3章:响应中断中更详细地讨论了这一点。它的规

java - java.lang.Thread.interrupt() 有什么作用?

你能解释一下java.lang.Thread.interrupt()在被调用时做了什么吗? 最佳答案 Thread.interrupt()设置目标线程的中断状态/标志。然后在该目标线程中运行的代码可以轮询中断状态并适本地处理它。一些阻塞的方法如Object.wait()可能会立即消耗中断状态并抛出适当的异常(通常是InterruptedException)Java中的中断不是先发制人的。换句话说,两个线程必须合作才能正确处理中断。如果目标线程没有轮询中断状态,则中断实际上被忽略。通过Thread.interrupted()方法进行轮

java - java.lang.Thread.interrupt() 有什么作用?

你能解释一下java.lang.Thread.interrupt()在被调用时做了什么吗? 最佳答案 Thread.interrupt()设置目标线程的中断状态/标志。然后在该目标线程中运行的代码可以轮询中断状态并适本地处理它。一些阻塞的方法如Object.wait()可能会立即消耗中断状态并抛出适当的异常(通常是InterruptedException)Java中的中断不是先发制人的。换句话说,两个线程必须合作才能正确处理中断。如果目标线程没有轮询中断状态,则中断实际上被忽略。通过Thread.interrupted()方法进行轮