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

回到顶部