假设我有一个满是任务的队列,我需要将它们提交给执行者服务。一次处理一个。我能想到的最简单的方法是:
然而,我尽量避免完全阻塞。如果我有10,000个这样的队列,它们需要一次处理一个任务,我将用完堆栈空间,因为它们中的大多数将持有被阻塞的线程。
我想要的是提交一个任务,并提供一个回调,当任务完成时调用。我将使用该回调通知作为发送下一个任务的标志。(function tionaljava 和 jetlang 显然使用这样的非阻塞算法,但我不能理解他们的代码)
如果没有编写自己的执行器服务,那么如何使用 JDK 的 java.util.current 来实现这一点呢?
(为我提供这些任务的队列本身可能会阻塞,但这是一个待以后解决的问题)