0

シリアルポートを介して特定の操作を実行するJavaGUIを作成しています。応答を待っている間はブロックしたくないので、スレッドを実行する方が良い方法だと思いましたが、今は2つのオプションに直面しており、どちらがより効率的かわかりません。

  • ケース1:非同期タスクごとに1つのスレッドを作成します。
  • ケース2:単一のスレッドをスリープ状態に保ち、アトミック整数の値を変更してから中断することにより、さまざまなタスクを実行させます。

これらの操作はどれもプロセッサを集中的に使用することはありませんが、スレッドをメモリに永続的に保持するのが賢明かどうかは疑問です。

4

2 に答える 2

2

次のようなシングルスレッドの ExecutorService を使用します

private final ExecutorService service = Executors.newSingleThreadExecutor();

service.submit(new Runnable() {
   public void run() {
       // task to perform here.
   }
});

シリアル デバイスの読み取りと書き込みに別のスレッドが必要な場合があります。

于 2012-10-09T10:13:38.370 に答える
1

ExecutorServiceを見てください。必要なのはこれだけだと思います。

Peter が提案したように、 newSingleThreadExecutorExecutorServiceを使用 して作成し、それを使用してタスクを処理できます。

于 2012-10-09T10:12:55.517 に答える