2

Executorインターフェイスを使用することは、独自のスレッドを明示的に作成するよりも優れたプログラミング手法であると読みました。私の意見では、独自のスレッドを作成し、Threadコンストラクターの引数でそれらを初期化する方がはるかに簡単です。Executorこれまでの方法でスレッドを作成するのではなく、使用する利点は何ですか?

4

3 に答える 3

2

スレッドの作成はコストのかかる操作であるため、スレッドをスレッド プールに返すことをお勧めします。これは、クライアント要求ごとにスレッドが割り当てられるサーバーで特に必要です。

必要になるたびにスレッドを再作成して毎秒数百のリクエストを処理すると、パフォーマンスに大きな影響を与えます。

そのため、必要なスレッドが少ない場合は、Executor を使用せずにスレッドを作成できます。アプリケーションが多くのスレッドを作成する可能性が高い場合は、Executor を使用してください。

于 2012-11-21T14:53:03.217 に答える
1

明示的なThreadオブジェクトを使用すると、並列で実行されるスレッドが得られます。あなたExecutorServiceが得ると:

  • タスクの実行間でリサイクルされるスレッドのプール。
  • スレッドが新しいタスクを自動的にチェックする、スレッドセーフなブロッキング タスク キュー。
  • 暗黙的な負荷分散。
  • スレッド作成のオーバーヘッドが回避されるため、暗黙的な効率。

これExecutorServiceにより、生産者と消費者のパラダイムを簡単に実装できます。

于 2012-11-21T15:40:16.310 に答える
0

利点の 1 つは、スレッドが毎回作成されるのではなく、プールから使用されることです。

オラクルの同時実行チュートリアルに従って

Executor は、スレッドを起動および管理するための高レベル API を定義します。java.util.concurrent によって提供される Executor の実装は、大規模なアプリケーションに適したスレッド プール管理を提供します。

于 2012-11-21T14:53:36.400 に答える