我正在嘗試學習線程中斷以及如何在不調用stop的情況下使線程終止。如何用線程中斷方法停止線程
public class Test implements Runnable{
static Thread threadTest=null;
public static void main(String args[]){
System.out.println("Hello i am main thread");
Test thread= new Test();
threadTest= new Thread(thread);
threadTest.start();
}
private static void exitThread() {
threadTest.interrupt();
}
@Override
public void run() {
boolean run = true;
while (run) {
try {
System.out.println("Sleeping");
Thread.sleep((long) 10000);
exitThread();
System.out.println("Processing");
} catch (InterruptedException e) {
run = false;
}
}
}
}
輸出
Hello i am main thread
Sleeping
Processing
Sleeping
我無法理解爲什麼睡覺打印第二次打斷異常被拋出,而不是第一再寄一次檢查了下volatile關鍵字用來帖子第二次停止java.but中的線程,但我無法理解在這種情況下如何使用該線程,因爲線程被中斷停止。