共通の workQueue である adPoolExecution アーキテクチャでは、ジョブが到着すると、スレッドが 1 つだけ呼び出され、そのスレッドが作業を完了します。代わりに、すべてのスレッドが呼び出され、すべてのスレッドがタスクを実行するようにします。
私のシナリオは以下の通りです。5000 個のデータ項目があり、各データ項目に対してタスクを実行する必要があります。1つずつ実行すると遅いことが判明したため、ここでスレッドを使用したいと思います。ここで、5 つのスレッドを使用したとします。最初のスレッドは最初の 1000 個のデータ項目を実行し、2 番目のスレッドは次の 1000 個を実行し、他のスレッドが続きます。この 5000 個のデータ項目に対して実行する必要があるジョブが到着すると、タスクを実行できるように、5 つのスレッドすべてを呼び出すか、スリープ状態から戻す必要があります。
これは、Java で adPoolExecution を使用してどのように可能ですか。同じジョブの 5 つのコピーをキューに挿入すると役立つ場合があることは承知しています。しかし、これには多くの副作用があります。たとえば、スレッドがその仕事をすぐに完了した場合、他の誰かの仕事を占有してしまいます。
ありがとう