2

Executor は Threads よりも優れているというコメントをいくつか見ましたが、(フローベースのプログラミングのように) バウンド バッファーを介して通信する多数の Threads がある場合、とにかく Threads を使用する必要があるのに、なぜ Executor を使用するのでしょうか (newCachedThreadPool を使用) (?))。また、isAlive()、interrupt() などのメソッドを使用しています - どうすれば Thread ハンドルを取得できますか?

誰かが私が盗用できるサンプルコードを持っていますか? ;-)

4

1 に答える 1

1

エグゼキュータは基本的にスレッドの抽象化です。Runnable/Callable インスタンスで潜在的な並列ロジックを分離し、手動でスレッドを作成して開始したり、プールを管理したりする必要がなくなります。アプリケーション ロジックの一部として依存関係を処理する必要があります。

アプリケーション ロジックのスレッドと対話したい場合、またはスレッドに慣れている場合は、エグゼキューターの使用をスキップできます。スレッドの取得に関しては、いつでも Thread.currentThread() を実行して、実行中のコンテキストから現在のスレッドを取得できます。

于 2012-04-28T06:13:21.443 に答える