java thread 清除中断标记
时间: 2024-10-13 09:06:57 浏览: 26
在Java中,当线程接收到中断信号(调用了`interrupt()`方法)后,它会设自身的中断标志为`true`。要清除这个中断标记,你可以直接调用`clearInterrupt()`方法。这是一个示例:
```java
public class ClearInterruptExample {
public static void main(String[] args) {
Thread t = new Thread(){
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
// Do some work...
}
System.out.println("Interrupted signal received.");
Thread.currentThread().clearInterrupt(); // Clear the interrupt flag
}
};
t.start();
// After some time or if desired, interrupt the thread
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
t.interrupt();
}
}
```
在这个例子中,如果线程在循环中检测到自己被中断(`isInterrupted()`返回`true`),它会打印一条消息并清除中断标志。这使得线程可以在清理资源之后优雅地结束,而不是立即停止。
阅读全文