本文目錄一覽:
- 1、java sleep(1000)和wait(1000)有區別嗎?
- 2、java中的sleep是什麼意思
- 3、java中的sleep()方法
- 4、java多線程調用同步方法時,休眠後代碼為什麼執行不到
- 5、Java線程如何在方法中指定某個線程休眠或者停止
- 6、java怎樣休眠1秒鐘?
java sleep(1000)和wait(1000)有區別嗎?
第一種解釋:\x0d\x0a\x0d\x0a功能差不多,都用來進行線程式控制制,他們最大本質的區別是:sleep()不釋放同步鎖,wait()釋放同步縮. \x0d\x0a \x0d\x0a還有用法的上的不同是:sleep(milliseconds)可以用時間指定來使他自動醒過來,如果時間不到你只能調用interreput()來強行打斷;wait()可以用notify()直接喚起.\x0d\x0a\x0d\x0a第二種解釋:\x0d\x0a\x0d\x0asleep是Thread類的靜態方法。sleep的作用是讓線程休眠制定的時間,在時間到達時恢復,也就是說sleep將在接到時間到達事件事恢複線程執行,例如:\x0d\x0a\x0d\x0atry{\x0d\x0aSystem.out.println(“I’m going to bed”);\x0d\x0aThread.sleep(1000);\x0d\x0aSystem.out.println(“I wake up”);\x0d\x0a}\x0d\x0acatch(IntrruptedException e) {\x0d\x0a}\x0d\x0a\x0d\x0await是Object的方法,也就是說可以對任意一個對象調用wait方法,調用wait方法將會將調用者的線程掛起,直到其他線程調用同一個對象的notify方法才會重新激活調用者,例如:\x0d\x0a\x0d\x0a//Thread 1\x0d\x0a\x0d\x0atry{\x0d\x0aobj.wait();//suspend thread until obj.notify() is called\x0d\x0a}\x0d\x0acatch(InterrputedException e) {\x0d\x0a}\x0d\x0a\x0d\x0a第三種解釋:\x0d\x0a\x0d\x0a這兩者的施加者是有本質區別的. \x0d\x0asleep()是讓某個線程暫停運行一段時間,其控制範圍是由當前線程決定,也就是說,在線程裡面決定.好比如說,我要做的事情是 “點火-燒水-煮麵”,而當我點完火之後我不立即燒水,我要休息一段時間再燒.對於運行的主動權是由我的流程來控制.\x0d\x0a\x0d\x0a而wait(),首先,這是由某個確定的對象來調用的,將這個對象理解成一個傳話的人,當這個人在某個線程裡面說”暫停!”,也是 \x0d\x0athisOBJ.wait(),這裡的暫停是阻塞,還是”點火-燒水-煮飯”,thisOBJ就好比一個監督我的人站在我旁邊,本來該線\x0d\x0a程應該執行1後執行2,再執行3,而在2處被那個對象喊暫停,那麼我就會一直等在這裡而不執行3,但這個流程並沒有結束,我一直想去煮飯,但還沒被允許,\x0d\x0a \x0d\x0a直到那個對象在某個地方說”通知暫停的線程啟動!”,也就是thisOBJ.notify()的時候,那麼我就可以煮飯了,這個被暫停的線程就會從暫停處\x0d\x0a繼續執行.\x0d\x0a\x0d\x0a其實兩者都可以讓線程暫停一段時間,但是本質的區別是一個線程的運行狀態控制,一個是線程之間的通訊的問題\x0d\x0a\x0d\x0a在java.lang.Thread類中,提供了sleep(),\x0d\x0a而java.lang.Object類中提供了wait(), notify()和notifyAll()方法來操作線程\x0d\x0asleep()可以將一個線程睡眠,參數可以指定一個時間。\x0d\x0a而wait()可以將一個線程掛起,直到超時或者該線程被喚醒。\x0d\x0a wait有兩種形式wait()和wait(milliseconds).\x0d\x0asleep和wait的區別有:\x0d\x0a 1,這兩個方法來自不同的類分別是Thread和Object\x0d\x0a 2,最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。\x0d\x0a 3,wait,notify和notifyAll只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在\x0d\x0a 任何地方使用\x0d\x0a synchronized(x){\x0d\x0a x.notify()\x0d\x0a //或者wait()\x0d\x0a }\x0d\x0a 4,sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常
java中的sleep是什麼意思
SLEEP,英語單詞,名詞、動詞,作名詞時意為「睡眠,人名;(英)斯利普」,作動詞時意為「睡,睡覺」。
單詞發音英[sli_p]美[sli_p]基本用法sleep用作動詞的基本意思是「睡眠」,也可作「為(某數量的人)提供床位」解。
sleep與介詞to連用時一般都省略冠詞。sleep用作名詞的意思是「睡眠」,是不可數名詞;加不定冠詞時,表示「一段時間的睡眠」。
sleep的進行時可以表示按計劃、安排或打算即將發生的動作,這時句中往往有表示將來的時間狀語或特定的上下文。一站式出國留學攻略
java中的sleep()方法
1.所有這些語句都必須在方法裡面寫,類裡面只能存在屬性和方法。不存在語句
2.thread.sleep()需要捕捉異常,加try/catch
java多線程調用同步方法時,休眠後代碼為什麼執行不到
1、java多線程調用同步方法時主程序或者後台服務Service程序兩者必須有一個正在運行著,定時任務才會執行。
2、自動執行的任務可以設置開啟或關閉定時,檢查任務的這一開關處於開啟狀態。
3、源目錄在定時的時間點如果沒有變化,任務執行後不會留下日誌,通過查看任務的最後執行時間確定任務到底執行了沒有。
4、執行失敗和沒有執行不是同一回事,如果是執行失敗則要分析失敗原因。這是java多線程調用同步方法時,休眠後代碼執行不到的原因。
Java線程如何在方法中指定某個線程休眠或者停止
首先能確定你的代碼沒有問題,其中有一個警告是你的sleep沒有以靜態方式調用;
this是指當前類的一個對象,你的mythread類中根本就沒有sleep方法,談何調用勒;
用t來調用不是出現錯誤,而是一個警告
the static method sleep(long) from the type thread should be accessed in a static way並提供了兩種fix方法。
一個靜態方法需要以一個靜態方式去訪問調用,如果你使用該類型的一個實例去調用,也是可以的,不過這就違背了設計靜態關鍵字的意願了,靜態方法或變數是先於類構造之前就存在了。
java怎樣休眠1秒鐘?
這是線程問題,用sleep()方法,括弧裡面填睡眠時間,以毫秒為單位,1秒就填1000。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279069.html