stop:中止執行緒,並且清除監視器鎖的資訊,可能導致執行緒安全問題。
destroy(從未實現過這個方法)。
public
class
demo
thread.
print()
;}}
public
class
stopthread
extends
thread
catch
(interruptedexception e)
j++;}
}public
void
print()
}
理想輸出為i=0,j=0
程式的執行結果為i=1,j=0
沒***同步**塊裡面資料的一致性,破壞了執行緒安全。
如果目標執行緒在呼叫object.class的wait(), wait(long), wait(long,int),join(),join(long,int)或者sleep(long,int)的方法的時候被阻塞的話,那麼interrupt會生效,這個執行緒的中斷狀態被清除,丟擲interruptedexception異常。
如果目標執行緒是被io或者nio中的channel阻塞,那麼io操作會被中斷,或者返回特殊異常值,達到終止執行緒的目的。
如果以上條件都不滿足的話,會設定這個執行緒的中斷狀態。
public
class
demo
thread.
print()
;}}
讓開發人員自己去處理異常。
public
class
demo
extends
thread
}catch
(interruptedexception e)})
.start()
;}thread.
sleep
(3000l)
; flag =
false
; system.out.
println
("程式執行中止");
}
多執行緒 08 終止執行緒
執行緒的停止有兩種方式 第一種方式 執行緒體自己執行完畢,比如說裡面有個迴圈,或者就幾行 或者呼叫方法,呼叫完了就結束了。這是正常執行完畢。第二種方式 想法設法停止那些它不能自己停止的執行緒,一般來說就是那些沒有次數或者死迴圈,在jdk裡面提供了stop方法,但已經被過時,被jdk廢棄,替換為 只是...
Linux多執行緒之執行緒終止
呼叫 return void var 呼叫void pthread exit void value ptr 其它執行緒可以呼叫 pthread join 獲得這個針。注 如果 thread 執行緒通過 return 返回,value ptr 所指向的單元裡存放的是 thread 執行緒函式的返回值。...
MFC多執行緒 如何安全終止MFC多執行緒
3 在檔案中定義執行緒傳遞引數的資料結構,如下 demodlg.h typedef struct thread param thread param 4 在cdemodlg類中新增成員變數,如下 demodlg.h protected cwinthread m pthread thread para...