Tag: 执行器

Java执行者:如何在不阻塞的情况下通知任务完成?

假设我有一个队列中充满了需要提交给执行者服务的任务。 我希望他们一次处理一个。 我能想到的最简单的方法是: 从队列中取一个任务 提交给执行者 在返回的Future上调用.get,并阻塞,直到结果可用 从队列中取另一个任务… 但是,我试图避免完全阻止。 如果我有一万个这样的队列,需要一次处理一个任务,那么我将耗尽堆栈空间,因为他们中的大多数将持续被阻塞的线程。 我想提交一个任务并提供一个任务完成时调用的callback。 我将使用该callback通知作为发送下一个任务的标志。 (functionaljava和jetlang显然使用这样的非阻塞algorithm,但我不明白他们的代码) 我怎样才能使用JDK的java.util.concurrent来完成,而不是写自己的执行器服务? (给我这些任务的队列本身可能会阻塞,但是这是后面要解决的问题)