在Java中處理中斷信號通常使用Thread類的interrupt()方法來發送中斷信號,以及使用Thread類的isInterrupted()方法或者interrupted()方法來檢查線程是否被中斷。下面是一個簡單的示例代碼:
public class Main {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
while (!Thread.currentThread().isInterrupted()) {
// 執行一些任務
System.out.println("Running task...");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
});
thread.start();
// 在某個時間點發送中斷信號
try {
Thread.sleep(5000);
thread.interrupt();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我們創建了一個新的線程并在其中執行一個任務,然后在5秒后發送中斷信號給線程。線程在執行任務時會檢查是否被中斷,如果被中斷則停止執行任務。在捕獲到InterruptedException異常時,我們重新設置中斷狀態。
需要注意的是,中斷信號并不會立即中斷線程,而是設置一個中斷標志,線程在合適的時機檢查這個標志來決定是否中斷執行。