gpt4 book ai didi

java - 无限循环的问题

转载 作者:行者123 更新时间:2023-11-30 06:35:04 26 4
gpt4 key购买 nike

我是 Java 编程的初学者……我正在编写一个调度程序。我正在从属性文件中读取日期和时间值。如果属性文件中有任何更改,那么我必须重新安排调度程序。为此,我正在编写一个无限循环,如下所示:

for(;;){
result = loadData.checkChanges();
if(result == true){
//If changes found in the properties file then reSchedule tasks
reSchedule();
}
}

如果循环一直运行到应用在“应用服务器”中的生命周期(一年或两年),会不会遇到性能问题或JVM问题或其他问题?

最佳答案

除非您的 checkChanges() 方法 hibernate 或阻塞,否则当前编写的代码将通过调用 loadData.checkChanges(); 与处理器一样快地消耗 CPU有能力的。理想情况下,您应该执行类似调用 loadData.wait() 的操作,然后在您希望运行检查时让另一个线程调用 loadData.notify()。一个更简单且几乎同样好的解决方案是定期 hibernate 线程,例如:

for(;;){
result = loadData.checkChanges();
if(result == true){
//If changes found in the properties file then reSchedule tasks
reSchedule();
}
try {
Thread.sleep(100);
}
catch (InterruptedException ignored) {}
}

另外,请不要使用for(;;)。而是尝试 while(true),它更清晰。或者更好的方法是,尝试 while(!stop),其中 stop 是一个 boolean 变量,当您的应用程序上下文被销毁(服务器关闭、webapp 取消部署等)时,它会被设置为 true。 ).

关于java - 无限循环的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6406206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com