2012-03-12 72 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。這將是簡單的。然後,當你瞭解它是如何工作的時候,花點時間研究執行者,線程池等。

快樂線程!