繁体   English   中英

Java中的worker和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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM