久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      java進階知識——線程的六種狀態(tài)

      java進階知識——線程的六種狀態(tài)

      線程的狀態(tài)

      線程有如下6種狀態(tài):

      New(新創(chuàng)建 )

      Runnable(可運行)

      Blocked(被阻塞)

      Waiting(等待)

      Timed waiting(計時等待)

      Terminated(被終止)

      其中,要獲取一個線程當(dāng)前的狀態(tài),可以調(diào)用getState 方法。

      java相關(guān)視頻推薦:java視頻

      下面,對每種狀態(tài)進行解釋

      1.新創(chuàng)建線程(New)

      當(dāng)我們使用new操作符來創(chuàng)建了一個線程時,如使用new Thread(r)時,線程還未開始運行,線程中的代碼也沒有開始執(zhí)行,此時就成為New狀態(tài)。

      2.可運行線程(Runnable)

      當(dāng)我們對一個線程執(zhí)行start()方法后,就會啟動該線程。但是注意,一個處于可運行狀態(tài)的線程可能正在運行也可能沒有運行,這時取決于操作系統(tǒng)的時間片調(diào)度。搶占式調(diào)度系統(tǒng)會給每一個線程分配一個時間片來運行,在時間片使用完后,操作系統(tǒng)就會剝奪它運行的權(quán)力,并更根據(jù)優(yōu)先級選擇下一個要運行的線程。

      3.被阻塞、等待狀態(tài)(Blocked、waiting、Timed waiting)

      當(dāng)一個線程處于阻塞和等待狀態(tài)時,它不做任何工作,也不執(zhí)行任何代碼。直到操作系統(tǒng)重新激活它。

      當(dāng)一個線程試圖獲取一個內(nèi)部對象鎖,而這個鎖又被其它線程持有時,該線程就進入阻塞狀態(tài),當(dāng)其它線程釋放這個鎖后,并且線程調(diào)度器允許該線程持有它時,該線程將會變成非阻塞狀態(tài)。

      當(dāng)線程等待另一個線程通知調(diào)度器一個條件時,它自己就進入等待狀態(tài),再調(diào)用Object.wait方法或者Thread.join方法時,就會出現(xiàn)這種情況。被阻塞狀態(tài)和等待狀態(tài)時大有不同的。

      有幾個方法有一個超時參數(shù)。調(diào)用它們導(dǎo)致線程進入計時等待狀態(tài)這一狀態(tài)將一直保存到超時期滿或者接收到適當(dāng)?shù)耐ㄖ?。帶有超時參數(shù)的方法有:Thread.sleepObject.wait、Thread.join、 Lock,tryLock 以及 Condition.await 的計時版。

      4.被終止的線程

      線程終止有兩種原因:

      因為run()方法執(zhí)行完畢正常退出

      因為一個沒有捕獲的異常而終止了run方法導(dǎo)致意外死亡

      5.總結(jié)

      java進階知識——線程的六種狀態(tài)

      相關(guān)文章教程推薦:java編程入門

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號