Thread.sleep与定时器
因此,在我的研究中,我发现使用计时器执行指令并执行指令,然后使线程进入休眠状态的主要区别。Thread.sleep与定时器
遵守以下代码
public class StkFlow { public void event(ActionEvent e){
//do some stuff
}
public static void main (String [] args){
Timer tick=new Timer (200, event);
tick.start();
}
}
AND
public class StkFlow { public static void main (String[] args){
while (/*Condition*/){
//Do some stuff
Thread.sleep (200);
}
}
代码的第一片使用一个计时器,并执行一些代码每200ms和第二片的代码执行一些代码,并把该线程睡200ms。不同之处在于计时器已经为你迭代了,并且不像Thread.sleep那样暂停线程,停止所有的处理,(这里的主题是计时器),那么如果你有一个循环在里面呢,如果这个循环比较相同的对象?它会不断创建一个这个循环的新实例吗?如果它确实做了最终结果,比方说,如果它正在处理该循环中的一些重型指令?
E.G
public class StkFlow { public void event(ActionEvent e){
while (0==0){
//do some heavy duty stuff
}
}
public static void main (String [] args){
Timer tick=new Timer (200, event);
tick.start();
}
}
回答:
的Thread.sleep其停止所有处理,所以如果你有里面一个循环,如果这个循环是比较相同的对象是什么?它会不断创建一个这个循环的新实例吗?如果它确实做了最终结果,比方说,如果它正在处理该循环中的一些重型指令?
不,它不会,你需要start()
一个新的线程。 Thread.sleep()
会停止当前线程,但是如果您在自己的线程中运行它,那么它不会停止主线程和每个可能在其自己的线程中运行的任务,而是可以在时间点之后启动它们。
以上是 Thread.sleep与定时器 的全部内容, 来源链接: utcz.com/qa/262736.html