多執行緒學習 執行緒中斷

2021-10-03 06:06:32 字數 1668 閱讀 7097

執行緒中斷的方法有

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...