最近在写一个java的小游戏,关于循环执行游戏内一些方法,重绘游戏界面时: 本人用的while(true){thread.sleep(time);code;}的方式被idea警告。 后来想起java有个定时器的东西:timer.schedule(new TimerTask() {}; 请问一下这两种方式那种好呢? 如果我需要在计时器里new线程,需要我手动杀线程吗?
收起
首先,你需要充分了解计时器的用法,计时器是单线程的,它默认开启了一个现场来执行你的任务。 这是JDK后台的机制它自己开启现场,不需要你来new线程的。 其次,如果你要用计时器的话,只需要记录这个timer对象,然后在程序结束的时候timer.cancel();取消该定时器即可。
报告相同问题?