作者LaPass (LaPass)
看板java
标题Re: [问题] setTimeout对应java
时间Wed Oct 17 22:13:49 2012
※ 引述《flyfeather92 (老娘)》之铭言:
: 如题
: 在javascript中有setTimeout的函数 他可以呼叫程式让时间延迟
: 在java有没有相对应的方法或类别?
: 我想先执行A类别 延迟一下在执行B类别这样的工具
: 我事java新手 请各位大大们指导
推文太慢,用回的
我建议先去读关於执行绪的那一章
尤其是「执行绪安全」这个相关的部分要看一下
如果你急着把功能做出来的话,可以先跳过
但是那天程式跑得很奇怪的话,要记得去查一下「执行绪安全」这方面的问题
java有不少方式,可以达到setTimeout同样的功能
但是在逻辑上会跟JAVASCRIPT很不一样
其实javascript并没有多执行绪的观念
多执行绪是在HYML5出来後才有的东西.....
而setTimeout的意思,比较像是:时间到了,就叫主执行绪去执行某个动作
本身并没有执行绪安全的问题
在java中的概念,分成两个动作
1.开另外一条执行绪 (Thread)去执行动作
//凭印象打得,不确定有没有打错字
new Thread(new Runnable(){
@override
public void run(){
//你要执行的程式码
}
}).start();
执行这一段之後,会变成两段程式码同时执行
并不会等到某个时刻才执行
JVM并不保证执行顺序跟时机
2.命令这个执行绪停住几秒钟
Thread.sleep(1000); //睡一秒
要注意这里的Thread.sleep(1000);
是把那条执行绪卡在那边卡一秒,不会继续往下执行
有比较现成的物件是 TimerTask 与 Timer
但是,这物件也是从上面那两个东西延伸出来的
也要注意多执行绪的问题
Timer timer = new Timer();
timer.schedule(new TimerTask ()
{
@override
public void run()
{
//你要执行的动作
}
}
, 1000); //一秒後执行
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.38.66.70
1F:推 duck10704:推 10/17 23:26
2F:推 tigernaxo:推 不过HTML的T好像歪了 XD 10/18 08:51
3F:→ LaPass:真的Y了..... 看得懂就好了啦 XD 10/18 09:43