私はバックグラウンドスレッド(またはワーカースレッド)に関するチュートリアルを読んでいますが、今はSwingWorkerとデーモンスレッドの間で混乱します。もし私がGUI以外のアプリケーションを書いているのであれば、両方ともバックグラウンドで仕事をしているのでSwingWorkerやデーモンのスレッドを作るべきですか?javaのワーカーとデーモンのスレッド
0
A
答えて
1
Thread
にはデーモンとデーモン以外の2種類があります。デーモンでないデーモンThread
がすべて停止すると、JVMは実行を停止します。
SwingWorker
は、GUIが応答しなくなるのを防ぐために、イベントディスパッチスレッドから時間のかかる高価なタスクを非同期に実行するためのユーティリティです。 SwingWorker
はThread
ではありません。実行のためにThread
に陥れる可能性があるRunnable
タスクです。
GUIで何もしていない場合は、Thread
を使用してください。 GUI用に個別のThread
でアクションを実行する必要がある場合は、SwingWorker
を使用してください。
0
SwingWorkerは、ユーザーインターフェイスとのやり取りを容易にする特殊なクラスです。 GUIコンポーネントへのアクセスは特別なGUIスレッドからのみ行う必要があります。 SwingWorkerにはguiスレッドで実行することが保証されているメソッドdone
がありますので、安全にuiを更新することができます。
スイングUIとやり取りしない場合は、単純なスレッドを使用する必要があります。さらに、いくつかのスレッドが必要な場合は、ExecutorService
を参照することをお勧めします。これはスレッドプールです。
関連する問題
- 1. PHPデーモン/ワーカー環境
- 2. HTTP ::デーモンとスレッド
- 3. Javaスレッド監視。非デーモンのライブスレッドを見つけるには?
- 4. Redis、Rubyスクリプト、Resqueワーカーをデーモンとして起動するには
- 5. R foreach do 1ワーカー/スレッドと並列
- 6. UIスレッドとワーカーを同期させる
- 7. HyperledgerファブリックのJavaデーモン
- 8. DumaのPumaワーカー、スレッドの設定方法
- 9. スレッド、ワーカー、ミューテックス、スタック可能の違いは?
- 10. デーモンとしてPythonスレッドを設定したときの違い
- 11. LinuxのJavaデーモン:選択肢?
- 12. PyQtワーカーにArgを渡すスレッド開始時のスレッド
- 13. JavaスレッドとOSスレッド
- 14. 発泡酒のワーカーとワーカーの連絡
- 15. スレッドとソケットJavaの
- 16. Javaのスレッドとマルチスレッド
- 17. Javaコンソールアプリケーションをデーモン(バックグラウンド)として実行
- 18. Javaの:マルチスレッドと2Dのスレッド
- 19. Javaゲームプログラミングとスレッド
- 20. 共有ワーカーとは何ですか?ワーカーと共有ワーカーの違いは?
- 21. Javaデーモン用の簡単なinitスクリプト?
- 22. Javaのスレッド内のスレッド?
- 23. Javaの同期とスレッド
- 24. Java Swingworkerと複数のスレッド
- 25. イベントループスレッドとしてのJavaスレッド
- 26. Javaスレッドのプロデューサとコンシューマ
- 27. Timer&TimerTaskとJavaのスレッド+スリープ
- 28. Javaでのスレッドと同期
- 29. 別のウィンドウに別のparforワーカー/スレッドのfprintfとdisp出力をリダイレクトする
- 30. Javaのスレッド:古いスレッドにJavaスレッドへの新規の
こんにちは、送信されたRunnableタスクを実行するスレッドはデーモンかどうかですか? – MinhHoang
@FinalIllusion 'SwingWorker#execute'を呼び出すと、デーモン' Thread'で実行されます。しかし、SwingWorkerはバックグラウンドでEvent Dispatch Threadと同期するために多くの作業を行います。実際にGUI用のタスクを実行している場合を除き、使用しないでください。 – Jeffrey
ありがとう、それは私がSwingWorker Runnableタスクを実行しているスレッドがデーモンであるかどうかをチェックする方法を知らないので、私が知りたいことです。 – MinhHoang