![](/img/trans.png)
[英]Is Java thread a daemon 'if and only if' the creating thread is a daemon?
[英]Worker and daemon thread in java
我已经阅读了有关后台线程(或工作线程)的教程,现在我对SwingWorker和守护程序线程感到困惑,它们是一样的吗? 如果我正在编写非GUI应用程序,我是否应该创建SwingWorker或守护程序线程,因为它们都在后台执行工作?
Thread
有两种类型:守护程序和非守护程序。 当所有非守护进程Thread
停止运行时,JVM将停止执行。
SwingWorker
是一个实用程序,用于从事件调度线程异步执行一些耗时的任务,以防止GUI变得无响应。 SwingWorker
不是Thread
,它是一个Runnable
任务,可以加总到Thread
以执行。
如果您不使用GUI进行任何操作,请使用Thread
。 如果需要在GUI的单独Thread
上执行操作,请使用SwingWorker
。
SwingWorker是一个专门的类,可简化与用户界面的交互。 只能从特殊的gui线程访问gui组件。 SwingWorker具有已done
方法,可以保证在gui线程中执行该方法,因此您可以安全地更新ui。
如果不与swing ui交互,则应使用简单的Thread。 此外,如果您需要几个线程,那么最好查看ExecutorService
,它是一个线程池。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.