上篇博客開始,我們接觸了一些有關(guān)Java多線程的基本概念。這篇博客開始,我們就正式的進入了Java多線程的實戰(zhàn)演練了。實戰(zhàn)演練不僅僅是貼代碼,也會涉及到相關(guān)概念和術(shù)語的講解。

線程的狀態(tài)

程的狀態(tài)分為:新生,可運行,運行,阻塞,死亡5個狀態(tài)。如下圖:

移動開發(fā)培訓,Android培訓,安卓培訓,手機開發(fā)培訓,手機維修培訓,手機軟件培訓

狀態(tài)說明

  • 新生(new):線程對象剛創(chuàng)建,但尚未啟動。

  • 可運行(Runnable):線程創(chuàng)建完畢,并調(diào)用了start()方法,雖然調(diào)用了start(),但是并不一定意味著線程會立即執(zhí)行,還需要CPU的時間調(diào)度。線程此時的狀態(tài)就是可運行狀態(tài)。

  • 運行:線程等到了CPU的時間調(diào)度,此時線程狀態(tài)轉(zhuǎn)為運行狀態(tài)。

  • 阻塞(Blocked):線程由于某種原因被阻礙了,但是此時線程還處于可運行狀態(tài)。調(diào)度機制可以簡單的跳過它,不給它分配任何CPU時間。

其他狀態(tài)比較簡單,阻塞狀態(tài)是其中比較有意思的。造成線程阻塞的原因有:

  1. 調(diào)用sleep(毫秒數(shù)),使線程進入"睡眠"狀態(tài)。在規(guī)定的毫秒數(shù)內(nèi),線程不會被執(zhí)行,使用sleep()使線程進入睡眠狀態(tài),

    延伸閱讀

    學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式