Re: [問題] setTimeout對應java

看板java作者 (LaPass)時間13年前 (2012/10/17 22:13), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《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
推 不過HTML的T好像歪了 XD
10/18 08:51, 2F

10/18 09:43, , 3F
真的Y了..... 看得懂就好了啦 XD
10/18 09:43, 3F
文章代碼(AID): #1GVhqV-x (java)
文章代碼(AID): #1GVhqV-x (java)