Java ExecutorServiceフレームワークを使用すると、マネージスレッドプールを使用して実行する多数のタスクを委任できるため、完了するまで一度にN個のタスクをX個のタスクで実行できます。
私の質問は...Nが無限であるか、最初に割り当て/割り当て/定義するのが実用的でないほど大きい数である場合はどうなるでしょうか。
Java(ExecutorService)のスレッドプールの概念を活用して、リソースを使い果たすことなく合理的に送信できるよりも多くのタスクを処理するにはどうすればよいでしょうか。
この回答の目的上、各タスクは自己完結型であり、他のタスクに依存せず、タスクは任意の順序で完了できると想定します。
この問題を攻撃する最初の試みは、ExecutorService Yスレッドに一度にフィードすることでしたが、特定のタスクがいつ完了したかを判断する明確な方法がないため、実行する新しいタスクを送信する方法がないことにすぐに気付きました。
私は自分の「ExecutorService」を書くことができることを知っていますが、Javaフレームワークがすでに提供しているものの恩恵を活用しようとしています。私は一般的に「車輪の再発明をしない」カテゴリーに属しています。なぜなら、私よりも優れた頭脳がすでに私のために投資を行っているからです。
この種の問題を攻撃する方法について洞察を提供してくれる人に事前に感謝します。