【发布时间】:2014-08-31 18:10:23
【问题描述】:
我正在制作一个 Java 服务器应用程序。如果应用程序在可能的情况下运行,它会消耗大量资源。
据我所知,如果我添加了一个 sleep 方法,它会像这样运行:
Do task (Might take 10ms to do. Can also take longer or less)
Sleep 50ms
Do task (Might take 10ms to do. Can also take longer or less)
Sleep 50ms
那么我怎样才能让它每 50 毫秒(20 滴答)运行一次?
谢谢
【问题讨论】:
-
您能否说明您真正想要什么以及它与您的
sleep方法解决方案有何不同? -
立即尝试。 @SotiriosDelimanolis
-
您是说希望下一次迭代每 50 毫秒运行一次,而不管前一个任务花费了多长时间?
-
如果你正在编写一个服务器,它需要睡眠语句来提高性能,那么你做错了。在轮询任务队列之前,您应该将主循环设置为等到有任务要完成。如果您不熟悉完成此操作的原语,只需询问并提供有关您的服务器如何工作的更多详细信息。
-
@SotiriosDelimanolis 是的。因此,如果最后一个任务需要 10 毫秒,那么它会休眠 40 毫秒,或者如果最后一个任务需要 30 毫秒,那么它将休眠 20 毫秒。