這真是一切的標題。 我知道Thread.sleep()
只會讓當前線程進入睡眠狀態,但是有沒有辦法強制所有的線程同時進入休眠狀態,還是會自我管理?有沒有辦法在Java中使所有正在運行的線程sleep()?
回答
從外部將線程置於睡眠狀態是很危險的,因爲它可以處於某種中間狀態(例如,這就是爲什麼從外部殺死線程不好的原因)。所以請通過自我管理來實現。
如果某個程序的線程正確同步,那麼暫時暫停一個或多個線程可能導致外部代理程序可能造成的最嚴重的危害就是使程序錯過實時期限或無法滿足性能要求。它不會導致數據損壞。即,* IF *程序已正確同步。即使它沒有正確同步,那麼同時在同一時間間隔內暫停其線程也不會造成任何傷害。 –
@ jameslarge你的線程正在控制步進電機。因爲它已經入睡了,它並沒有讓它停下來。它現在撞到了牆上,損壞了設備。不是一個真實的例子?我在C中拋出了一個20K原型,只是出現了這個問題(因爲我有一個調試器,所以線程已經睡了)。它只是因爲它的同步性而不是一般的安全。 –
@GabeSechan,當我說「錯過實時期限」時,這就是我的意思,但我認爲重點出錯了。實時軟件本身就是一個完整的類別。我知道你在說什麼,只是在我的情況下,這是一個內部的牆壁(用一些幹牆,泥土和油漆固定),原型沒有受到傷害。 P.S .:我對機械設計團隊的官方建議是,「我們可以用小型電機來做到這一點。」 –
答案很簡單:無法讓所有線程從Java(從應用程序內部)進入休眠狀態。
此外,在Java上,有很多內部線程(如GC線程,Finalization線程,...),您無法操作,因此「all」永遠不可能。
問候,
盧瓦克
- 1. 有沒有辦法殺死所有正在運行的cocos2d acions
- 2. 有沒有辦法刷新正在運行的進程
- 3. 有沒有辦法在java中查詢argv的運行時?
- 4. 有沒有辦法在所有Heroku dynos上運行命令?
- 5. 有沒有辦法在eclipse中運行在NetBeans中開發的java程序?
- 6. 有沒有在存儲過程中使用sleep()的方法?
- 7. 有沒有辦法在R中運行Java?
- 8. 有沒有辦法在concurrent.futures中停止正在運行的進程?
- 9. 有沒有辦法在MySQL的單獨線程中運行觸發器?
- 10. 在Excel-VBA中,有沒有辦法讓程序名稱'我正在運行?
- 11. 有沒有辦法通過線程名稱查詢C#應用程序內的正在運行的線程?
- 12. 在運行方法中沒有循環的Java線程
- 13. 有沒有辦法在子進程中運行節點任務?
- 14. 有沒有辦法找到控件的所有者線程?
- 15. 有沒有辦法在Macbook Pro上的Eclipse中暫停正在運行的Java程序的執行?
- 16. 有沒有辦法在python中重新使用線程工作?
- 17. 有沒有辦法在多個線程中使用asyncio.Queue?
- 18. 有沒有辦法使用C++在Java手機上運行程序?
- 19. 有沒有辦法在應用程序內的所有正在運行的活動上調用finish()?
- 20. 有沒有辦法在Java中而不是整個類中的線程方法?
- 21. 有沒有辦法多線程的SqlDataReader?
- 22. 有沒有辦法找出pytest-xdist網關正在運行?
- 23. 如何在Silverlight中終止所有正在運行的線程?
- 24. 有沒有辦法獲得正在運行的GTK應用程序的標籤?
- 25. 有沒有辦法讓ColdFusion Builder 3運行使用Java 8?
- 26. Java/Ruby:有沒有辦法在Java中執行.constantize或Object.send()?
- 27. 有沒有辦法在javascript中換行?
- 28. 有沒有辦法在運行時重命名Scala(或Java)中的方法?
- 29. 有沒有辦法在iOS中檢測正在運行的動畫?
- 30. 有沒有辦法在Xamarin中取消正在運行的計時器?
每個線程將不得不把自己睡覺。 –
也許這個問題將有所幫助:http://stackoverflow.com/questions/20666454/how-to-pause-all-running-threads-and-then-resume – byxor
您是否嘗試迭代所有正在運行的線程並阻止它們逐個? – Abdo