10

キューにタスクを入れない固定サイズのスレッド プールを作成したいと考えています。つまり、スレッド プールが現在使用されている場合、着信タスクは完全に拒否されます。ドキュメントに基づいて、これを行う 1 つの方法は、私の意見では、タスクの許可を拒否するダミーの Queue オブジェクトを作成することです。Javaでこれを達成するための慣用的な方法は何ですか?

4

3 に答える 3

16

オブジェクトを保持しないキューである ThreadPoolExector でSynchronousQueueを使用できます。キャッシュされたスレッド プールは、オンデマンドで新しいスレッドを作成するため、これを使用します。

キューに入れることができない場合は、RejectedExecutionHandlerを使用して現在のスレッドでタスクを実行することをお勧めします。このようにして、常に「すぐに」実行されます。

ところで:なぜこれをしたいのかを明確にすることは役に立ちます。

于 2012-04-17T07:17:02.887 に答える
0

なぜそんなことをしたいのか、詳しく教えていただけますか?TP + Qの基本的な目的は、作業用の自動「保持メカニズム」を備え、作業者を作業作成プロセスから切り離すことです。許容できる作業パッケージをワーカーと同じ数だけにすることが目的の場合は、TPEは実際には必要ありません。

于 2012-04-17T06:49:20.287 に答える