2012-03-12 40 views
0

我想学习如何线程类(特别是类中的方法),我碰到过Thread()SwingWorker()。这是一个swing应用程序。我应该选择哪一个?为什么?另外,是否有一些通用的方法来将线程添加到现有方法中?Java线程 - 秋千应用程序

感谢

+3

这两个类的javadoc说什么?你的结论是什么? – 2012-03-12 17:46:21

回答

1

SwingWorker的,主要是为了的Java Swing执行的后台进程是指基于UI的应用程序,就像在UI按下一个按钮,你想一些长期的过程在后台发生。 线程通常用于Java程序中的多任务处理,例如在某种时间内执行两个操作。 线程可以从Runnable接口实现,也可以从Thread类继承。 检查Oracle Java Docs。

0

使用Swingworkers可能会使您喜欢更容易,因为它的目的是做的正是你所需要的。 Oracle网站上有一个很好的tutorial,可以帮助您开始。 从本质上讲,在一个Swing应用程序,你需要确保:

  • 凡是与GUI交互的EDT (Event Dispatch Thread)
  • 长期任务运行不上EDT运行,因为如果他们这么做,他们将冻结在您的计算运行时的图形用户界面

Swingworkers处理这两件事非常好。

0

Thread是您需要创建线程的基本部分。 JDK提供任一“低电平” API(采取Thread类,接口可运行,synchoronized关键字,方法wait()notify()一看)或更高级别的API(的SwingWorker,定时器,执行人框架)。

网上有很多教程。先学习基础知识。阅读Thread的javadoc,找到一些例子,和他们一起玩。然后通过Timer和SwingWorker。这将是简单的。然后,当你了解它是如何工作的时候,花点时间研究执行者,线程池等。

快乐线程!