❶ java線程中的sleep方法作用是啥,啥時候用此方法
sleep(毫秒數)是Thread類的靜態方法。
使用時:Thread.sleep(毫秒數);
如Thread.sleep(1000);該線程睡眠1秒鍾版,之間此線程什權么都不做。
等1秒鍾之後,繼續餘下代碼執行。
不過線程是沒有保證的。也許1秒鍾之後,該線程沒有轉為可運行狀態,也是可能的。
❷ Java中線程的幾種可用狀態有哪些請大家解釋一下。
我理解的有5種:
1、創建,剛創建出線程對象,比如new Thread()
2、就緒,調用了start方法,但內此時並不是調用就立馬被運行,容在這期間要讓cpu執行你,在等待執行過程叫就緒也叫等待。cpu並不是立馬執行,而是串列以極快速度切換進程的運行著
3、運行,正在運行了,創建出線程,脫離了主線程,進入run,天高任鳥飛
4、死亡,異常終止,或run執行完畢
5、阻塞,運行過程中,交出cpu執行權休眠。為什麼要休眠?某些某些特定的條件等待條件成熟,這時候手動讓線程休眠進入阻塞狀態
線程之間但狀態是可任意轉換的,阻塞醒來就是就緒,運行中又阻塞,就緒運行死亡,等狀態可切換。
還有一種是進程的狀態
1、就緒,創建子進程,等待cpu調度執行
2、運行,運行程序
3、僵屍,運行完畢死亡等待收屍
3、暫停,被信號暫停,等待信號喚醒
4、阻塞,等待條件成熟,人為休眠。條件滿足或喚醒
進程和線程狀態,非常類似
❸ JAVA-關於線程Sleep的問題!
1.在ThreadA 中的run中sleep不會影響System.out.println("Main thread is running....");
2.run方法執行完,線程就結束了
❹ JAVA中,線程有哪五個基本狀態他們之間如何讓轉化並簡述線程周期。
java中,每個線程都需經歷新生、就緒、運行、阻塞和死亡五種狀態,線程內從新生到死亡的狀容態變化稱為生命周期。
用new運算符和Thread類或其子類建立一個線程對象後,該線程就處於新生狀態。
❺ Java線程的幾種狀態
新建抄(new)
新建一個線程的對象。
可運行(runable)
線程對象創建後,其他線程調用該線程的start方法。或者該線程位於可運行線程池中等待被線程調用,已獲取cpu的使用權。
運行(running)
可運行的線程獲取了cpu的使用權,執行程序代碼/
阻塞(block)
由於某些原因該線程放棄了cpu的使用權。停止執行。除非線程進入可運行的狀態,才會有機會獲取cpu的使用權。
1. 等待阻塞:運行中的線程執行wait方法,這時候該線程會被放入等待隊列。
2. 同步阻塞:運行中的線程獲取同步鎖,如果該同步鎖被別的線程佔用,這個線程會成被放入鎖池,等待其他線程釋放同步鎖。
3. 其他阻塞:運行的線程執行sleep或者join方法這個線程會成為阻塞狀態。當sleep超時,join等待線程終止,該線程會進入可運行狀態。
死亡(dead)
線程run mian 執行完畢後,或者因為某些異常產生退出了 run 方法,該線程的生命周期結束。
❻ java多線程怎樣讓一個線程睡眠
Thread提供的sleep方法,讓線程睡眠,這樣做是可以達到你的要求的。
但是,下面列舉的一些方法,也能夠實現相對意義上的「睡眠」:
可以使用Wait方法,讓線程阻塞。
可以使用join方法,讓線程合並。
可以使用lock方法,讓線程互斥。