執行緒中斷的方法有
1.stop已廢棄
2.使用共享變數(shared variable)發出訊號,告訴執行緒必須停止正在執行的任務。執行緒必須週期性的核查這一變數,然後有秩序地中止任務。
通過volatile關鍵字設定開關:
private
static
class
worker
extends
thread
}public
void
shutdown()
}public
static
void
main
(string[
] args)
catch
(interruptedexception e)
worker.
shutdown()
;}
3.interrupt()中斷執行緒
thread相關方法:
public static boolean interrupted 判斷當前執行緒是否處於中斷狀態,並且會清除中斷狀態
public boolean isinterrupted() 僅判斷當執行緒是否處於中斷狀態。
public void interrupt() 中斷執行緒。
會中斷阻塞狀態執行緒,無法直接在中斷執行狀態執行緒
使用:中斷阻塞執行緒
while
(!thread.
currentthread()
.isinterrupted()
&& more work to do
)//當任務執行完需要打斷執行緒
thread.
currentthread()
.interrupt
()
中斷阻塞執行緒
public
void
run()}
catch
(interruptedexception e)
finally
}
案例
public
static
void
main
(string[
] args)
throws interruptedexception
catch
(interruptedexception e)}}
};t.
start()
; system.out.
println
(t.isinterrupted()
);t.
interrupt()
; system.out.
println
(t.isinterrupted());}
執行結果:
多執行緒 執行緒中斷
設計思路 1,新建乙個執行緒,其啟動引數是要輸出其執行狀態。2,中斷主線程若干秒,讓新建執行緒持續運作。3,中斷新建執行緒,輸出起執行次數和執行狀態。int count 0 thread t2 new thread catch threadabortexception absortexception...
多執行緒的中斷
當乙個執行緒執行時,另乙個執行緒可以呼叫對應的thread物件的interrupt 方法來中斷它。package threadtest public class sleepinterrupt implements runnablecatch interruptedexception e system...
多執行緒學習(一) 中斷執行緒
執行緒的中斷 第一種方法 stop方法 不正確的終止方法,已經被jdk棄用,原因是可能會出現執行緒安全問題。示例 public class stopthread extends thread catch exception e j public void print public static vo...