Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中如何在时间范围内睡眠_Java - Fatal编程技术网

在java中如何在时间范围内睡眠

在java中如何在时间范围内睡眠,java,Java,我有一个java程序,应该从晚上9:30运行到第二天上午10:00。在此期间,程序应每小时运行一次;为此,我使用了Thread.sleep(60*60*1000) 它每小时运行一次-我如何修改它,使其仅在该时间间隔内执行,并在该时间间隔外休眠?只需按当前状态进行休眠,然后当计时器触发时,使用或等效工具检查当前时间。如果时间不在你想要的时间范围内,不要做任何事情(或退出,等等)。如果您在时间范围内,请执行您的操作 或者,使用比普通的定时器在长时间范围内提供更好的准确性/可靠性 如果您的需求更“企业

我有一个java程序,应该从晚上9:30运行到第二天上午10:00。在此期间,程序应每小时运行一次;为此,我使用了
Thread.sleep(60*60*1000)


它每小时运行一次-我如何修改它,使其仅在该时间间隔内执行,并在该时间间隔外休眠?

只需按当前状态进行休眠,然后当计时器触发时,使用或等效工具检查当前时间。如果时间不在你想要的时间范围内,不要做任何事情(或退出,等等)。如果您在时间范围内,请执行您的操作

或者,使用比普通的
定时器
在长时间范围内提供更好的准确性/可靠性


如果您的需求更“企业化”,那么正如评论所说,最好使用专门的框架,而不是滚动您自己的代码。

您需要使用调度程序,在搜索引擎中搜索Java调度以获得更多信息。如果您使用Linux操作系统,您可以使用cron。但你想要什么还不清楚。解决方案可能非常不同,如果您在Shell或应用程序服务器上运行程序,那么使用专门为此目的设计的框架(如Quartz)总比重新发明轮子要好。@PradeepSimha我认为这取决于任务-这似乎不是一项复杂的任务,只需编写执行此操作所需的几行额外代码,而不是添加整个外部库,可能会更简单/更快。此外,这似乎不是一个特别大的车轮重新发明!编辑:我已经更新了我的答案,以呈现这两种观点,因为只要上下文正确,我同意你的观点。你能告诉我,我如何做到这一点…我不能使用我公司限制的cron-tab-bcz。问题中的链接提供了示例。考虑到例如
LocalTime
实现了
Comparable
,您应该能够进行推断。