在Java中,可以使用Thread類的interrupt()方法來中斷線程。該方法的語法如下:
public void interrupt()
要使用這個方法,你需要先創建一個Thread對象,然后在需要中斷線程的地方調用interrupt()方法。一旦線程被中斷,它的中斷狀態將被設置為true。
下面是一個簡單的示例,演示了如何使用interrupt()方法中斷線程:
public class MyThread extends Thread {
public void run() {
try {
// 在這里執行線程的任務
// 使用Thread.sleep()模擬一個耗時的操作
for (int i = 0; i < 10; i++) {
System.out.println("執行任務...");
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println("線程被中斷!");
}
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
// 在某個時間點上中斷線程
try {
Thread.sleep(5000); // 等待5秒
thread.interrupt();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我們創建了一個名為MyThread的自定義線程類,它繼承自Thread類。在run()方法中,我們使用Thread.sleep()方法模擬一個耗時的操作。在主線程中,我們創建了一個MyThread對象,并調用它的start()方法來啟動線程。然后,我們等待5秒鐘,然后調用thread.interrupt()來中斷線程。當線程被中斷時,會拋出InterruptedException異常,并在catch塊中處理中斷的情況。
需要注意的是,interrupt()方法只是向線程發出一個中斷請求,具體的中斷處理邏輯需要在線程的run()方法中自行實現。你可以在run()方法中使用isInterrupted()方法來檢查線程的中斷狀態,從而決定是否終止線程的執行。
此外,還可以使用Thread類的靜態方法Thread.interrupted()來檢查當前線程的中斷狀態,并清除中斷狀態。這個方法會返回當前線程的中斷狀態,并將中斷狀態重置為false。