我正在寻找一个不是由定时器驱动的Java调度框架,或者像Quartz等其他任何类型的cron风格的调度程序。这里有很多问题和答案可以解决定时器驱动的调度程序,但这样的调度程序无法解决我的问题。
我遇到的问题是我有几个线程,每个线程都从分配给它的阻塞队列中获取消息。当阻塞队列为空时,从中读取的线程将被阻止,并且无法分配给其他某个线程。这样我的系统就会遇到一些饥饿问题。由于这个JDK5线程池不适合,因为它们只能将未被阻塞的空闲线程分配给需要服务的另一个队列。
我在互联网上发现了hawt dispatch,这正是我所需要的,但它的高级功能,如期货,让我感觉更舒服,只有在使用Scala API时才可用。有人知道一些类似于hawt dispatch的Java框架吗?任何暗示很多暗示。
问候,奥利弗
答案 0 :(得分:1)
说实话,我不知道任何框架正在执行你所描述的内容,但我宁愿改变线程的实现,以免阻塞队列。
即使队列实现BlockingQueue
interface,仍然可以使用Queue#peek()
method以非阻止方式检查它们。