如何停止一個正在運行的線程?


使用共享變量的方式 

在這種方式中之所以引入共享變量是因為該變量可以被多個執行相同任務的 

線程用來作為是否中斷的信號通知中斷線程的執行

使用 interrupt 方法終止線程 

如果一個線程由於等待某些事件的發生而被阻塞又該怎樣停止該線程呢這種 

情況經常會發生比如當一個線程由於需要等候鍵盤輸入而被阻塞或者調用 

Thread.join()方法或者 Thread.sleep()方法在網絡中調用 

ServerSocket.accept()方法或者調用了 DatagramSocket.receive()方法時 

有可能導致線程阻塞使線程處於處於不可運行狀態時即使主程序中將該線程 

的共享變量設置為 true,但該線程此時根本無法檢查循環標志當然也就無法立 

即中斷這里我們給出的建議是不要使用 stop()方法而是使用 Thread 提供的 

interrupt()方法因為該方法雖然不會中斷一個正在運行的線程但是它可以使一 

個被阻塞的線程拋出一個中斷異常從而使線程提前結束阻塞狀態退出堵塞代 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM