キューにタスクを入れない固定サイズのスレッドプールを作成します。つまり、スレッドプールが現在使用されている場合は、着信タスクを完全に拒否する必要があります。 documentationに基づいて、これを行う1つの方法は、私の意見では、タスクを許可することを拒否するダミーQueueオブジェクトを作成することです。 Javaでこれを達成するための慣習的な方法は何ですか?QueueのないThreadPoolExecutor
7
A
答えて
10
ThreadPoolExectorには、オブジェクトを保持しないキューであるSynchronousQueueを使用できます。キャッシュされたスレッドプールは、必要に応じて新しいスレッドを作成するため、これを使用します。
キューに登録できない場合は、RejectedExecutionHandlerを使用して現在のスレッドでタスクを実行することをお勧めします。このようにして、常に「直ちに」実行されます。
ところで、なぜこれをやりたいのかを明確にすると便利です。
0
なぜこのようなことをしたいのかを詳しく説明できますか? TP + Qの基本的な目的は、作業のための自動的な「保持メカニズム」を持ち、作業者を作業作成プロセスから切り離すことです。あなたの意図が労働者と同じくらい多くの受け入れ可能な仕事パッケージを持っているだけなら、本当にTPEは必要ありません。
関連する問題
- 1. ThreadPoolExecutorの内部
- 2. ThreadPoolExecutorのjava - Thread.join()
- 3. threadpoolexecutorをダイス
- 4. ThreadPoolExecutorとjoin()
- 5. ThreadPoolExecutorロギング? (パイソン)
- 6. Queue内のNullPointerException
- 7. ThreadPoolExecutorかどうか
- 8. bionomial queue perfomanceについて
- 9. ThreadPoolExecutorでのSwingWorkerのキャンセル
- 10. Service Broker Queueカスタムレポート
- 11. Javascript Lazyload queue
- 12. NSOperation in global queue
- 13. .Net SMTP Queue
- 14. jQuery queue $ .post requests
- 15. Perl Threads :: Queue
- 16. git commit queue tool
- 17. MessageListenerがOracle Queueのメッセージをリッスンしない
- 18. ThreadPoolExecutorおよびSocket。スレッドが
- 19. 優先度ThreadPoolExecutor in Java(Android)
- 20. 仕事/仕事Stealing ThreadPoolExecutor
- 21. Redis Queue不適切な注文
- 22. Zend Job Queueの別のファイル
- 23. JavaのQueue/LinkedListのシリアル化
- 24. Clojure Heroku Worker Dyno Queue
- 25. Mysql Queue Start/End time
- 26. std :: queue initialization with NULL
- 27. Amazon Simple Queue Service(SQS)
- 28. 検証XHTMLは$ .queue
- 29. PriorityBlockingQueueがサポートしているThreadPoolExecutorが動作していないようです
- 30. 単一リンクリストのjava.lang.NullPointerException Queue
タスクは、スレッドのキューで待機するのではなく、空きスレッドを持つ別のスレッドプールエグゼキュータを取得できます。 ThreadPoolExecutorの代わりに何を使うべきですか? –
実行を制御したい場合、TPEはあなたの選択ではありません。仕事を手放すことができるワーカースレッドのシンプルなコレクションを持っているほうがいいです(シンプルなセット)。あなたは、スレッドを構築して、スレッドをメインスレッドから出し入れします。 –
vivekv