我已閱讀關於後臺線程(或工作線程)的教程,現在我在SwingWorker和守護進程線程之間感到困惑,他們是否一樣?如果我正在編寫非GUI應用程序,我應該創建SwingWorker還是守護程序線程,因爲它們都在後臺執行作業?java中的工作者和守護進程線程
0
A
回答
1
有兩種類型的Thread
s:守護進程和非守護進程。當所有非守護進程Thread
停止運行時,JVM將停止執行。
SwingWorker
s是一個實用程序,用於從Event Dispatch Thread異步執行一些耗時的任務,以防止GUI無響應。 A SwingWorker
不是Thread
,它可以是Runnable
任務,可以合併爲Thread
執行。
如果您沒有對GUI進行任何操作,請使用Thread
。如果您需要針對GUI在單獨的Thread
上執行操作,請使用SwingWorker
。
0
SwingWorker是一個專門的類,可以簡化與用戶界面的交互。只能從特殊的gui線程訪問gui組件。 SwingWorker有方法done
這是保證在gui線程中執行,所以你可以安全地更新ui。
如果你不與swing ui交互,你應該使用簡單的線程。此外,如果您需要一些線程,請查看ExecutorService
這是一個線程池。
相關問題
- 1. Java中的守護進程和非守護線程優先級
- 2. java守護進程線程
- 3. 在java中的守護進程線程
- 4. java線程 - 守護線程?
- 5. 守護線程Java
- 6. Python線程和守護進程
- 7. HTTP ::守護進程和線程
- 8. 在java中製作unix守護進程
- 9. 在守護進程線程中創建的進程的主線程是守護進程本身嗎?
- 10. 在Java線程池中使用守護進程線程不起作用
- 11. Java守護進程部署
- 12. 守護線程
- 13. 定時器()作爲守護進程與非守護進程
- 14. PHP守護進程/工作環境
- 15. Ruby守護進程不工作
- 16. 守護進程線程是否也是守護進程線程啓動的線程?
- 17. 關於守護進程線程
- 18. 瞭解Python守護進程線程
- 19. 退出守護進程線程
- 20. 創建守護進程線程
- 21. 守護進程線程終止於jvm
- 22. 如果非守護進程線程正在等待守護進程,
- 23. Java在applet重新加載中殺死守護進程線程
- 24. 如何在java中檢查守護進程線程狀態?
- 25. emacs守護進程和magit
- 26. 通過Mule中的守護進程線程維護多個HttpRequests
- 27. 關於終結者守護進程
- 28. Apache的工作者配置和mod_wsgi的守護進程模式有關嗎?
- 29. Java中的執行程序和守護進程
- 30. Python的多線程守護進程(模塊守護進程,併線程一起使用)
嗨,所以執行提交的Runnable任務的線程是守護進程還是不是? – MinhHoang 2012-04-26 23:35:03
@FinalIllusion如果你調用'SwingWorker#execute',它將在一個守護進程'Thread'上執行。但是,'SwingWorker's在後臺做了很多事情來同步事件派發線程,所以除非你真的爲GUI執行任務,否則你不應該使用它。 – Jeffrey 2012-04-26 23:42:40
謝謝,這就是我想知道的,因爲我不知道如何檢查執行SwingWorker Runnable任務的線程是否是守護進程。 – MinhHoang 2012-04-26 23:47:24