对Java事件循环库的建议

对Java事件循环库的建议,java,event-loop,Java,Event Loop,我正在寻找类似JavaScriptsetTimeout,但带有Runnable,具有以下限制: 每次超时不需要单独的专用线程 已经发展和深思熟虑 甚至可能包括其他功能。(取消超时?、等待某事?、异步I/O?) 不需要任何GUI库。(Java FX/Swing/AWT都内置了事件循环) 你有什么建议吗 编辑:我找到了我要找的东西。如果有一个库也包含了与非阻塞或异步I/O相关的内容,那将是一个加号。您想过使用的API吗 可能对您有用。您可能正在寻找: 您可以决定使用多少线程 标准JDK类 可取

我正在寻找类似JavaScript
setTimeout
,但带有
Runnable
,具有以下限制:

  • 每次超时不需要单独的专用线程
  • 已经发展和深思熟虑
  • 甚至可能包括其他功能。(取消超时?、等待某事?、异步I/O?)
  • 不需要任何GUI库。(Java FX/Swing/AWT都内置了事件循环)
你有什么建议吗


编辑:我找到了我要找的东西。如果有一个库也包含了与非阻塞或异步I/O相关的内容,那将是一个加号。

您想过使用的API吗


可能对您有用。

您可能正在寻找:

  • 您可以决定使用多少线程
  • 标准JDK类
  • 可取消的任务
  • 与任何GUI无关

我真的不理解计划的可运行程序和事件循环之间的联系,但也许您会发现这个类中的内容

您可以使用java.util.Timer

http://docs.oracle.com/javase/6/docs/api/java/util/TimerTask.html

您可以将任务设置为仅运行一次或定期运行。
您还可以停止/取消单个TimerTask或所有任务。

如果您正在Java中寻找一个简单的node.js样式的事件循环,这是一个很好的开始

看看javadoc中提到的工厂,尤其是。这为您提供了一个可以向其提交任务的单一后台线程(如节点事件循环:请参见答案)


对于异步IO,处理阻塞活动的任务需要拆分一个线程(或执行器),并使用a将结果提交回事件循环。

我认为Vert.x是您所需要的,它是事件驱动的且非阻塞的。

我认为它被称为“XNIO”或“Mina”。更基于异步IO,不像Twisted/POE(?)那样通用,但在其他方面需要什么。(我想知道Twisted/POE是否有Java替代品?)。同样有趣的是,没有直接关系:可能会有一个线程等待计划时间的到来,一个事件循环会这样做,等等。这说明了吗?它太老了,无法回答,这个项目是在Netflix的掩护下建立的。使用可观察序列编写异步和基于事件的程序的库。
tpe.awaitTermination(50, TimeUnit.SECONDS);