キューにタスクを入れない固定サイズのスレッドプールを作成します。つまり、スレッドプールが現在使用されている場合は、着信タスクを完全に拒否する必要があります。 documentationに基づいて、これを行う1つの方法は、私の意見では、タスクを許可することを拒否するダミーQueueオブジェクトを作成することです。 Javaでこれを達成するための慣習的な方法は何ですか?QueueのないThreadPoolExecutor
7
A
答えて
10
ThreadPoolExectorには、オブジェクトを保持しないキューであるSynchronousQueueを使用できます。キャッシュされたスレッドプールは、必要に応じて新しいスレッドを作成するため、これを使用します。
キューに登録できない場合は、RejectedExecutionHandlerを使用して現在のスレッドでタスクを実行することをお勧めします。このようにして、常に「直ちに」実行されます。
ところで、なぜこれをやりたいのかを明確にすると便利です。
0
なぜこのようなことをしたいのかを詳しく説明できますか? TP + Qの基本的な目的は、作業のための自動的な「保持メカニズム」を持ち、作業者を作業作成プロセスから切り離すことです。あなたの意図が労働者と同じくらい多くの受け入れ可能な仕事パッケージを持っているだけなら、本当にTPEは必要ありません。
関連する問題
- 1. ThreadPoolExecutorでタスクがない場合、ThreadPoolexecutorは終了しますか?
- 2. ThreadPoolExecutorコールバック?
- 3. ThreadPoolExecutorの内部
- 4. ThreadPoolExecutorのjava - Thread.join()
- 5. ThreadPoolExecutorのSynchronousQueue
- 6. ThreadPoolExecutorのworkerCountOf()メソッドjava
- 7. ThreadPoolExecutorロギング? (パイソン)
- 8. threadpoolexecutorをダイス
- 9. ThreadPoolExecutorとjoin()
- 10. セロリ対ProcessPoolExecutor/ThreadPoolExecutor
- 11. Laravel/Lumen queue:リッスンが動作しない
- 12. SQLAlchemy ThreadPoolExecutor "Too many clients"
- 13. ThreadPoolExecutorかどうか
- 14. ThreadPoolExecutorでのSwingWorkerのキャンセル
- 15. Java SpringのThreadPoolExecutorの制御
- 16. Laravel Queueのトラブルシューティング
- 17. Queue内のNullPointerException
- 18. ActiveJobs Queue
- 19. 違いとお勧めThreadPoolTaskExecutorとThreadPoolExecutor
- 20. bionomial queue perfomanceについて
- 21. なぜArrayListはQueueを実装しないのですか?
- 22. ThreadPoolExecutor + Requests ==デッドロックですか?
- 23. ThreadPoolExecutorおよびSocket。スレッドが
- 24. 仕事/仕事Stealing ThreadPoolExecutor
- 25. 優先度ThreadPoolExecutor in Java(Android)
- 26. AzureサービスバスデッドレターQUEUE
- 27. Cant create queue
- 28. NSOperation in global queue
- 29. Laravel Queue not working
- 30. Service Broker Queueカスタムレポート
タスクは、スレッドのキューで待機するのではなく、空きスレッドを持つ別のスレッドプールエグゼキュータを取得できます。 ThreadPoolExecutorの代わりに何を使うべきですか? –
実行を制御したい場合、TPEはあなたの選択ではありません。仕事を手放すことができるワーカースレッドのシンプルなコレクションを持っているほうがいいです(シンプルなセット)。あなたは、スレッドを構築して、スレッドをメインスレッドから出し入れします。 –
vivekv