相关疑难解决方法(0)

Java执行程序:如何在任务完成时通知而不阻塞?

假设我有一个完整的任务队列,我需要提交给执行程序服务.我希望他们一次处理一个.我能想到的最简单的方法是:

  1. 从队列中获取任务
  2. 将其提交给遗嘱执行人
  3. 在返回的Future上调用.get并阻塞,直到结果可用
  4. 从队列中取出另一项任务......

但是,我试图完全避免阻塞.如果我有10,000个这样的队列,需要一次处理一个任务,我将耗尽堆栈空间,因为它们中的大多数将保持被阻塞的线程.

我想要的是提交一个任务并提供一个在任务完成时调用的回调.我将使用该回叫通知作为发送下一个任务的标志.(functionaljava和jetlang显然使用了这种非阻塞算法,但我无法理解他们的代码)

如何使用JDK的java.util.concurrent,而不是编写自己的执行器服务?

(向我提供这些任务的队列本身可以阻止,但这是一个需要解决的问题)

java callback notify executor

139
推荐指数
7
解决办法
12万
查看次数

标签 统计

callback ×1

executor ×1

java ×1

notify ×1