如何殺死在Java中正在運行的線程在java中查殺正在運行的線程?
8
A
回答
12
你可以問線程中斷,調用Thread.interrupt()
注意一些其他的方法有類似的語義存在 - stop()
和destroy()
- 但他們棄用 ,因爲他們是unsafe。不要試圖使用它們。
2
不久你需要Thread.interrupt()
有關詳細信息這篇文章中Why Are Thread.stop
, Thread.suspend
,Thread.resume
and Runtime.runFinalizersOnExit
Deprecated?檢查部分How do I stop a thread that waits for long periods (e.g., for input)
。
6
正如Bozho所說,Thread.interrupt()是通用和正確的方法。但請記住它需要線程配合;實現忽略中斷請求的線程非常容易。
爲了使一段代碼能夠以這種方式中斷,它不應該忽略任何InterruptedException,並且應該檢查每個循環迭代中的中斷標誌(使用Thread.currentThread()。isInterrupted())。另外,它不應該有任何不可中斷的阻塞操作。如果存在這樣的操作(例如等待一個套接字),那麼你需要一個更具體的中斷實現(例如關閉套接字)。
相關問題
- 1. 在java中殺死線程
- 2. C++在運行過程中查殺指定線程
- 3. Java線程:正在運行的JVM
- 4. 在java中查殺進程
- 5. 如何殺死正在運行的線程?
- 6. 立即殺死一個正在運行的線程未來
- 7. 在Xamarin Studio中查看進程的正在運行的線程
- 8. 檢查正在運行的進程 - java
- 9. 在線程運行方法中運行CryptoPP FileSink無法殺死Qt線程
- 10. 如何檢查我的線程是否正在運行Java
- 11. 殺死ssh會話殺死正在運行的進程
- 12. Java executorsevice正在關閉,即使它的線程正在運行
- 13. 在java中殺死一個線程android
- 14. Python正在運行線程
- 15. 在java中的後臺運行線程
- 16. 如何在Android中殺死正在運行的應用程序
- 17. 在ColdFusion中殺死一個正在運行的進程?
- 18. 中斷正在運行的線程
- 19. Java線程對象vs正在運行線程
- 20. 在java中中斷正常運行的線程
- 21. 如何從Java中的線程類中計算正在運行的線程?
- 22. 如何殺死在新活動中運行的線程
- 23. 線程正在查殺我的應用程序
- 24. 的java:正在運行的線程方法在同一類
- 25. C#中殺死正在運行的進程的其他方法
- 26. 如何檢查Java中當前正在運行的線程的數量?
- 27. 我可以在java中的線程中運行線程嗎?
- 28. 在java中運行多少個線程?
- 29. 在Java中運行多個線程
- 30. 在Java中運行多線程
可能的重複:http://stackoverflow.com/questions/94011/how-to-abort-a-thread-in-a-fast-and-clean-way-in-java – 2010-06-28 08:15:14