執行緒停止詳解

2021-09-29 15:20:25 字數 2088 閱讀 2686

執行緒停止共三種方法。

class

threadshutdown

implements

runnable

@override

public

void

run(

) system.out.

println

("執行緒停止");

}}public

class

threadstop

}

一秒後執行緒關閉,並輸出「執行緒停止」。

class

threadshutdown

implements

runnable

@override

public

void

run(

) system.out.

println

("執行緒停止");

}}public

class

threadstop

}}

一秒後關閉,但是並沒有輸出「執行緒停止」。

stop();強行關閉執行緒

本方法現在不推薦使用,因為會產生不完整資料

while(flag)

a.若若執行緒中沒有使用類似sleep/wait/join(執行緒阻塞)呼叫interrupt方法並不會真正中斷執行緒,

只是將執行緒的狀態置為interrupt,我們可以根據狀態來確定進一步如何處理執行緒。

thread類提供的 public boolean isinterrupted()可以檢測當前執行緒是否為中斷狀態。

class

threadshutdown

implements

runnable

@override

public

void

run()*/

//執行緒停止

system.out.

println

("當前執行緒狀態為"

+bool)

; system.out.

println

(thread.

currentthread()

.getname()

+","

+i++);

} system.out.

println

("執行緒停止");

b.若執行緒中呼叫了阻塞執行緒的方法如:sleep(),wait(),join(),

此時呼叫執行緒的interrupt方法時會丟擲異常interruptedexception

同時將執行緒狀態還原(istnterrupted=false)

class

threadshutdown

implements

runnable

@override

public

void

run(

) system.out.

println

("當前執行緒狀態為"

+bool)

; system.out.

println

(thread.

currentthread()

.getname()

+","

+i++);

}catch

(interruptedexception e)

} system.out.

println

("執行緒停止");

}}public

class

threadstop

}

interrupt響應阻塞在catch塊執行緒停止

第一種方式:設定標記位:無法處理執行緒阻塞時停止的問題

執行緒之停止執行緒

停止執行緒有三種方法 1.建議正常停止 利用次數,不建議死迴圈 2.建議使用標誌位 設定乙個標誌位 3.不要使用stop或者destoy等過時或者jdk不建議使用的方法舉例說明 想讓乙個正在執行的程式停下來,執行其他程式,執行完以後再進行自己的程式 怎麼來解決呢?可以自己設定乙個標識位.在自己的程式...

執行緒的停止

執行緒停止 執行緒的停止 1.停止乙個執行緒 我們一般都會通過乙個變數去控制的。2.如果需要停止乙個處於等待狀態下的執行緒,那麼我們需要通過變數配合notify方法或者interrupt 來使用。public class threaddemo5 extends thread public synch...

Java停止執行緒

1 run方法正常結束 public class stopthreaddemo class printthread extends thread 2 可以在run方法中設定標記讓執行緒正常結束 public class stopthreaddemo class printthread extends...