0

我已经阅读了有关后台线程(或工作线程)的教程,现在我对 SwingWorker 和守护线程感到困惑,它们是一样的吗?如果我正在编写非 GUI 应用程序,我应该创建 SwingWorker 或守护线程,因为它们都在后台完成工作吗?

4

2 回答 2

1

s有两种类型Thread:守护进程和非守护进程。当所有非守护进程Thread停止运行时,JVM 将停止执行。

SwingWorkers 是一个实用程序,用于从事件调度线程异步执行一些耗时的任务,以防止您的 GUI 变得无响应。ASwingWorker不是 a Thread,它是一个Runnable可以提交到 aThread执行的任务。

如果您不使用 GUI 做任何事情,请使用Thread. 如果您需要为您的 GUI 单独执行操作Thread,请使用SwingWorker.

于 2012-04-26T23:29:03.733 回答
0

SwingWorker 是一个专门的类,可以简化与用户界面的交互。只能从特殊的 gui 线程访问 gui 组件。SwingWorker 具有done保证在 gui 线程中执行的方法,因此您可以安全地更新 ui。

如果你不与 swing ui 交互,你应该使用简单的 Thread。此外,如果您需要几个线程,最好看看ExecutorService哪个是线程池。

于 2012-04-26T23:27:16.390 回答