當run方法正常執行完,執行緒也就停止了,當有迴圈時,可設定乙個標誌變數,為真時執行,否則退出迴圈,主要**如下:
public
void
run()
}
想要終止執行時,只需設定flag值為false即可。
使用stop()方法能立即停止執行緒,但是可能使一些請理性工作得不到完成。另一種情況就是對鎖鎖定的物件經行了「解鎖」,導致資料得不到同步的處理,出現不一致的問題
值得注意的是,interrupt()方法並不能真正停止執行緒,而是在當前執行緒打了乙個停止的標記,可用以下方法停止執行緒。
public
void
run()
system.out.println("退出執行緒");
}
呼叫interrupt()方法,this.interrupted()結果為true,退出迴圈,但會繼續執行system.out.println(「退出執行緒」);然後正常退出執行緒。可以採用拋異常的方式終止執行緒,**如下
public
void
run()
system.out.println("running");
}} catch (interruptedexception e)
}
執行緒關閉 主線程和子執行緒的關閉
今天寫執行緒,再網頁上找了些關閉執行緒的栗子,給大家整理一下 多執行緒程式的開發中,啟動了多個執行緒的程式在關閉的時候卻出現了問題,如果程式退出的時候不關閉執行緒,那麼執行緒就會一直的存在,但是大多啟動的執行緒都是區域性變數,不能一一的關閉,如果呼叫thread.currentthread.abor...
關閉執行緒Thread
最近寫的乙個程式,關閉主程式時,發現程序裡總有乙個.exe檔案。研究後發現如果程式退出的時候不關閉執行緒,那麼執行緒就會一直的存在,但是大多啟動的執行緒都是區域性變數,不能一一的關閉,如果呼叫thread.currentthread.abort 方法關閉主線程的話,就會threadabortexce...
關閉流的正確方式
最近寫了乙個bug 以下為網上找的例子 try if osw null if fos null catch exception e 看似流已經關閉了,也try了有什麼問題呢?現在有一種情況 當我們關第乙個流時出了異常然後catch捕獲異常,但是我們總共需要關閉三個流後面的兩個流並沒有及時關閉就可能會...