多執行緒 執行緒終止

2021-10-23 19:46:38 字數 1124 閱讀 3799

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