Re: [問題] setTimeout對應java
※ 引述《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
推
10/17 23:26, , 1F
10/17 23:26, 1F
推
10/18 08:51, , 2F
10/18 08:51, 2F
→
10/18 09:43, , 3F
10/18 09:43, 3F
討論串 (同標題文章)