【发布时间】:2012-03-12 17:43:36
【问题描述】:
我正在尝试学习如何线程化一个类(特别是类中的一个方法),我遇到了Thread() 和SwingWorker()。这是一个摇摆应用程序。我应该选择哪个,为什么?另外,是否有一些通用的方法可以为现有方法添加线程实现?
谢谢
【问题讨论】:
-
这两个类的javadoc是怎么说的?你的结论是什么?
标签: java multithreading swing swingworker
我正在尝试学习如何线程化一个类(特别是类中的一个方法),我遇到了Thread() 和SwingWorker()。这是一个摇摆应用程序。我应该选择哪个,为什么?另外,是否有一些通用的方法可以为现有方法添加线程实现?
谢谢
【问题讨论】:
标签: java multithreading swing swingworker
SwingWorker 主要用于在 Java 中执行后台进程 Swing 是基于 UI 的应用程序,例如在 UI 中按下按钮时,您希望在后台执行一些较长的进程。 线程通常用于 Java 程序中的多任务处理,例如一次执行两个操作。 线程可以从 Runnable 接口实现,也可以从线程类继承。 查看 Oracle Java 文档。
【讨论】:
使用 Swingworkers 可能会让您的喜欢更轻松,因为它旨在完全满足您的需求。 Oracle 网站上有一个很好的tutorial 可以帮助您入门。 本质上,在 Swing 应用程序中,您需要确保:
Swingworkers 可以很好地处理这两件事。
【讨论】:
Thread 类是创建线程所需的基本部分。 JDK 提供“低级”API(查看类 Thread、接口 Runnable、synchoronized 关键字、方法wait()、notify())或更高级别的 API(SwingWorker、Timer、executors 框架)。
网络上有很多教程。先学基础。阅读 Thread 的 javadoc,找到一些例子,和他们一起玩。然后通过 Timer 和 SwingWorker。这会很简单。然后,当您了解它的工作原理后,花点时间研究执行器、线程池等。
线程愉快!
【讨论】: