java计时器和死循环哪个好?哪个建议使用?

最近在写一个java的小游戏,关于循环执行游戏内一些方法,重绘游戏界面时:
本人用的while(true){thread.sleep(time);code;}的方式被idea警告。
后来想起java有个定时器的东西:timer.schedule(new TimerTask() {};
请问一下这两种方式那种好呢?
如果我需要在计时器里new线程,需要我手动杀线程吗?

首先,你需要充分了解计时器的用法,计时器是单线程的,它默认开启了一个现场来执行你的任务。
这是JDK后台的机制它自己开启现场,不需要你来new线程的。
其次,如果你要用计时器的话,只需要记录这个timer对象,然后在程序结束的时候timer.cancel();取消该定时器即可。

计时器性能更好,但是写起来稍微复杂一点。如果是非常短暂的延迟,用死循环也未尝不可。

一般来说能不用死循环的尽量不用死循环!

个人感觉没差吧,虽然我不懂定时器内部的实现原理,但也跑不掉循环吧,不然真想不出怎么执行重复代码的。

线程被new 出来以后执行完run中的代码自动被回收。

有问题请大神指出

http://blog.csdn.net/qq_34523482/article/details/70054647

如果你使用的是JDK1.5以上的,可以使用ScheduledThreadPoolExecutor来完成Timer的功能,这个实现起来简单,而且相比timer的缺陷进行了弥补

那就看你程序对时间的要求高不高,循环内处理时间长不长了。
用死循环的话,它执行的时间不是固定的(每次执行完一次任务时间+睡眠时间)
用计时器的话,它是每隔固定时间执行一次。