下面是我写的一段java代码,希望通过循环不断的执行一些函数,但是运行一段时间后,程序没有出现异常,也没有停止,但是没有过像之前一样循环执行了,请教一下原因。
int month = 0;
int minute = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm");
Date dt = new Date();
String d = sdf.format(dt);
while (true)
{
Calendar c = Calendar.getInstance();
if (month<c.get(Calendar.MONTH) && c.get(Calendar.DAY_OF_MONTH)==1)
{
//method1
if (month==12)
{
month=0;
}
else month = c.get(Calendar.MONTH);
}
if (minute<c.get(Calendar.MINUTE))
{
//Method2
{
minute = 0;
}
else minute = c.get(Calendar.MINUTE);
}
}
...请问你如何退出循环,系统又不知道你想在什么时候退出,最好设定一下次数或者退出循环的条件。执行的话恐怕会打开无数个虚拟机。。然后崩溃。。。。你关都来不及。。。
不能一直while循环,必须加上这句Thread.sleep(时间);,否则机器就死了。
循环一次的执行时间是很短的.... 太过频繁的调用会卡住.
找出所需最短的 循环时间间隔
比如 1分钟,则
while (true)
{
.....
// 线程等待1分钟
Thread.sleep(60 * 10000);
}
程序一直死循环,是不是CPU,内存占用很高了,你要适当的加一些Sleep来释放CPU
同时while循环中也要添加break条件来适当时候跳出循环
看看是不是有内存泄漏
这代码...这要干嘛呢,这非得整死系统不行,不是gc就是内存撑爆