Java如何延迟程序执行

时间:2015-07-06 11:50:52

标签: java wait

我有四个Web应用程序使用四个不同的文件来记录日志。从我的主应用程序(日志分析器)执行这四个应用程序,然后我将读取生成的日志文件,但在应用程序执行和日志生成之间存在滞后(大约5秒并且取决于机器执行速度)。

我想要做的是如何等待日志分析器执行,直到创建和更新所有这四个日志文件。现在我正在使用

这样做
Thread.sleep(6000)

但是这个系统在一些执行率低的环境中失败了。我想通过不断检查是否创建了四个文件并创建了内容来了解​​如何为此实现更好的解决方案。

2 个答案:

答案 0 :(得分:1)

您可以使用file system watcher来查看目录,并在触发特定事件时采取措施,而不是等待。

这将允许您的应用程序不会不必要地等待,或者不会过早采取行动,这就是当您提供固定时间段时会发生的情况。

答案 1 :(得分:0)

您的日志分析器应该等待日志生成,而不是主动轮询。使用join

  

join方法允许一个线程等待完成   另一个。如果t是其当前正在执行其线程的Thread对象,则

t.join();
     

导致当前线程暂停执行,直到t为止   线程终止。