0

バックグラウンドスレッド(またはワーカースレッド)に関するチュートリアルを読みましたが、SwingWorkerとデーモンスレッドの間で混乱しましたが、同じですか?GUI以外のアプリケーションを作成している場合、両方ともバックグラウンドでジョブを実行するため、SwingWorkerまたはデーモンスレッドを作成する必要がありますか?

4

2 に答える 2

1

Threads には、デーモンと非デーモンの2 種類があります。デーモン以外のすべての実行が停止すると、JVM は実行をThread停止します。

SwingWorkers は、時間のかかるタスクをイベント ディスパッチ スレッドから非同期に実行して、GUI が応答しなくなるのを防ぐためのユーティリティです。ASwingWorkerは ではありませんThread。実行Runnableのために に送信できるタスクです。Thread

GUI で何もしていない場合は、Thread. ThreadGUI 用に別のアクションを実行する必要がある場合は、 SwingWorker.

于 2012-04-26T23:29:03.733 に答える
0

SwingWorker は、ユーザー インターフェイスとのやり取りを容易にする特殊なクラスです。GUI コンポーネントへのアクセスは、特別な GUI スレッドからのみ行う必要があります。SwingWorker にはdoneGUI スレッドでの実行が保証されているメソッドがあるため、安全に ui を更新できます。

Swing UI を操作しない場合は、単純なスレッドを使用する必要があります。さらに、いくつかのスレッドが必要な場合ExecutorServiceは、どれがスレッド プールであるかを確認することをお勧めします。

于 2012-04-26T23:27:16.390 に答える