用interrupt處理凍結的執行緒

2021-06-26 14:04:50 字數 608 閱讀 2851

class stopthread implements runnable catch (exception e) 

} system.out.println("run................");

} }public class stopthreadtest

system.out.println("main..."+x);

} system.out.println("over");

}}

停止執行緒只有一種方法,就是讓run方法結束,stop()方法已過時。只要控制迴圈,就可以讓run方法結束,也就是執行緒結束。當執行緒處於凍結狀態時,就不會讀取到標記,那麼執行緒就不會結束。

先說說同步的前提:

1.必須要有兩個或者兩個以上的執行緒。

2.必須是多個執行緒使用同乙個鎖。

wait()方法一般發生在同步方法中,所以用synchronized修飾run()方法,但這是我們不能呼叫notify()方法喚醒執行緒,因為不滿足同步的條件,會發生異常。當沒有指定的方式讓凍結的執行緒恢復到執行狀態時,這時需要對凍結進行清除,強制讓執行緒恢復到執行狀態中來,這樣就可以操作標記讓執行緒結束,thread類提供了interrupt()方法。

JAVA執行緒的interrupt

interrupt 只是改變中斷狀態而已.interrupt 不會中斷乙個正在執行的執行緒。這一方法實際上完成的是,給受阻塞的執行緒丟擲乙個中斷訊號,這樣受阻執行緒就得以退出阻塞的狀態 更確切 的說,如果執行緒被 object.wait,thread.join 和thread.sleep 三種方法之...

JAVA執行緒的interrupt

interrupt 只是改變中斷狀態而已.interrupt 不會中斷乙個正在執行的執行緒。這一方法實際上完成的是,給受阻塞的執行緒丟擲乙個中斷訊號,這樣受阻執行緒就得以退出阻塞的狀態 更確切 的說,如果執行緒被 object.wait,thread.join 和thread.sleep 三種方法之...

JAVA執行緒的interrupt

interrupt 只是改變中斷狀態而已.interrupt 不會中斷乙個正在執行的執行緒。這一方法實際上完成的是,給受阻塞的執行緒丟擲乙個中斷訊號,這樣受阻執行緒就得以退出阻塞的狀態 更確切 的說,如果執行緒被 object.wait,thread.join 和thread.sleep 三種方法之...