我正在寻找类似JavaScript setTimeout
但有Runnable
的内容,但有以下限制:
你有什么建议吗?
编辑:我找到了我要找的东西。如果有一个库也包含与非阻塞或异步I / O相关的内容,那么将是一个优势。
答案 0 :(得分:2)
您可能正在寻找ScheduledThreadPoolExecutor:
我不太了解预定的runnables和一个事件循环之间的联系,但也许你会发现你正在寻找这个类。
答案 1 :(得分:2)
您可以使用java.util.Timer
http://docs.oracle.com/javase/6/docs/api/java/util/Timer.html http://docs.oracle.com/javase/6/docs/api/java/util/TimerTask.html
您只能将任务设置为运行一次或定期运行。 您也可以停止/取消单个TimerTask或所有任务。
答案 2 :(得分:1)
如果您在Java中寻找一个简单的node.js样式事件循环,ThreadPoolExecutor是一个好的开始。
查看Executors的javadoc中提到的ThreadPoolExecutor工厂,尤其是Executors.newSingleThreadExecutor()。这为您提供了一个后台线程(如Node事件循环:请参阅this question的答案),您可以向其提交任务。
对于异步IO,处理阻塞活动的任务需要拆分线程(或执行程序)并使用Future将结果提交回事件循环。
答案 3 :(得分:0)
您是否考虑过使用ThreadPoolExecutor
的awaitTermination APItpe.awaitTermination(50, TimeUnit.SECONDS);
可能对您有用。
答案 4 :(得分:0)
我认为Vert.x是你需要的,它是事件驱动的,非阻塞的。