从操作系统层面描述线程的五种状态
?
?
?
[初始狀態(tài)]
僅是在語(yǔ)言層面創(chuàng)建 了線程對(duì)象, 還未與操作系統(tǒng)線程關(guān)聯(lián)
?
[可運(yùn)行狀態(tài)] (就緒狀態(tài))
指該線程已經(jīng)被創(chuàng)建(與操作系統(tǒng)線程關(guān)聯(lián)), 可以由CPU調(diào)度執(zhí)行
?
[運(yùn)行狀態(tài)]
指獲取了CPU時(shí)間片運(yùn)行中的狀態(tài)
當(dāng)CPU時(shí)間片用完,會(huì)從[運(yùn)行狀態(tài)]轉(zhuǎn)換至[可運(yùn)行狀態(tài)],會(huì)導(dǎo)致線程的上下文切換
如果調(diào)用了阻塞API,如BIO讀寫文件,這時(shí)該線程實(shí)際不會(huì)用到CPU,會(huì)導(dǎo)致線程上下文切換,進(jìn)
?
[阻塞狀態(tài)]
等BIO操作完畢,會(huì)由操作系統(tǒng)喚醒阻塞的線程,轉(zhuǎn)換至[可運(yùn)行狀態(tài)]
與[可運(yùn)行狀態(tài)]的區(qū)別是,對(duì)[阻塞狀態(tài)]的線程來(lái)說(shuō)只要它們一-直不喚醒,調(diào)度器就-直不會(huì)考慮調(diào)度它們
?
[終止?fàn)顟B(tài)]
表示線程已經(jīng)執(zhí)行完畢,生命周期已經(jīng)結(jié)束,不會(huì)再轉(zhuǎn)換為其它狀態(tài)
?
總結(jié)
以上是生活随笔為你收集整理的从操作系统层面描述线程的五种状态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DDNS(花生壳)
- 下一篇: Page Cache的落地问题