Java ExecutorService 框架允许您使用托管线程池委派要执行的多个任务,以便可以一次执行 N 个任务,直到完成 X 个任务。
我的问题是......如果 N 是一个无限大的数字,以至于最初分配/分配/定义不切实际怎么办。
您如何利用 Java (ExecutorService) 中的线程池概念来处理比您可以合理提交的任务更多的任务,而不会耗尽资源。
出于此答案的目的,假设每个任务都是独立的,不依赖于任何其他任务,并且任务可以按任意顺序完成。
我最初尝试解决这个问题涉及一次提供 ExecutorService Y 个线程,但我很快意识到没有明显的方法可以判断特定任务何时完成,因此无法提交要执行的新任务。
我知道我可以编写自己的“ExecutorService”,但我正在尝试利用 Java 框架已经提供的丰富功能。我通常属于“不要重新发明轮子”类别,因为比我更聪明的人已经为我进行了投资。
提前感谢任何可以提供有关如何解决此类问题的任何见解的人。