私はswingを使用しており、アプリケーションでは、5秒ごとにインターネット接続を確認したり、ファイルシステムの変更を監視したり、サーバーからファイルを同期したりするなど、多くのスレッドを並行して実行する必要がありました。
上記のような時間のかかるタスクはすべて実行されSwingWorker
ているため、GUIがフリーズすることはありません。
同時に、サーバーへのファイルのアップロードなど、他の時間のかかるタスクを実行する必要があります。この目的のために、私はswingWorkerも使用しました。次に、これらすべてのswingworkerをexecuterServiceに送信して、スレッドプーリングを行い、相互に影響を与えないようにします。
私の実行サービスはこんな感じです。30スレッドで十分だと思いました。
static ExecutorService threadExecutor;
threadExecutor = Executors.newFixedThreadPool(30);
次に、同じサービスでスレッドを送信します。
threadExecutor.submit(monitorinternetconnectivity); //submitting swingworker obejct
開始時に送信するスレッドとランタイムを追加するスレッドの一部は、実行時に追加すると、インターネット接続の監視のように、ジョブを完了したり、ジョブの実行を停止したりしません。
スイングワーカーのような同じ機能を持つ方法、または複数のスイングワーカーを使用するための最良の方法はありますか?実行時に新しいswingwokerをexecuter
サービスに追加できるはずです