<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Liver's Java
    我不夠貪心!其實(shí)我應(yīng)該明白,心有多貪,舞臺(tái)就會(huì)有多大!堅(jiān)持!奮斗!
    posts - 4,  comments - 6,  trackbacks - 0
    今天有同事問(wèn)到線(xiàn)程的問(wèn)題,自己突然就有點(diǎn)蒙了,只模糊的記得個(gè)大概。
    當(dāng)初學(xué)習(xí)線(xiàn)程的時(shí)候把這7個(gè)狀態(tài)記得比自己名字還熟悉
    還把這7個(gè)狀態(tài)編成了一段凄慘而美麗的愛(ài)情故事
    沒(méi)想到如今卻只能記得個(gè)大概
    真驗(yàn)證了“好記性不如爛筆頭”的真理
    還是趕快回憶一下吧

    先從圖片開(kāi)始


    小小的作下解釋?zhuān)?br /> 1、線(xiàn)程的實(shí)現(xiàn)有兩種方式,一是繼承Thread類(lèi),二是實(shí)現(xiàn)Runnable接口,但不管怎樣,當(dāng)我們new了這個(gè)對(duì)象后,線(xiàn)程就進(jìn)入了初始狀態(tài);
    2、當(dāng)該對(duì)象調(diào)用了start()方法,就進(jìn)入可運(yùn)行狀態(tài)
    3、進(jìn)入可運(yùn)行狀態(tài)后,當(dāng)該對(duì)象被操作系統(tǒng)選中,獲得CPU時(shí)間片就會(huì)進(jìn)入運(yùn)行狀態(tài)
    4、進(jìn)入運(yùn)行狀態(tài)后情況就比較復(fù)雜了
        4.1、run()方法或main()方法結(jié)束后,線(xiàn)程就進(jìn)入終止?fàn)顟B(tài);
        4.2、當(dāng)線(xiàn)程調(diào)用了自身的sleep()方法或其他線(xiàn)程的join()方法,就會(huì)進(jìn)入阻塞狀態(tài)(該狀態(tài)既停止當(dāng)前線(xiàn)程,但并不釋放所占有的資源)。當(dāng)sleep()結(jié)束或join()結(jié)束后,該線(xiàn)程進(jìn)入可運(yùn)行狀態(tài),繼續(xù)等待OS分配時(shí)間片;
        4.3、線(xiàn)程調(diào)用了yield()方法,意思是放棄當(dāng)前獲得的CPU時(shí)間片,回到可運(yùn)行狀態(tài),這時(shí)與其他進(jìn)程處于同等競(jìng)爭(zhēng)狀態(tài),OS有可能會(huì)接著又讓這個(gè)進(jìn)程進(jìn)入運(yùn)行狀態(tài);
       4.4、當(dāng)線(xiàn)程剛進(jìn)入可運(yùn)行狀態(tài)(注意,還沒(méi)運(yùn)行),發(fā)現(xiàn)將要調(diào)用的資源被synchroniza(同步),獲取不到鎖標(biāo)記,將會(huì)立即進(jìn)入鎖池狀態(tài),等待獲取鎖標(biāo)記(這時(shí)的池里也許已經(jīng)有了其他線(xiàn)程在等待獲取標(biāo)記,這時(shí)它們處于隊(duì)列狀態(tài),既先到先得),一旦線(xiàn)程獲得標(biāo)記后,就轉(zhuǎn)入可運(yùn)行狀態(tài),等待OS分配CPU時(shí)間片;
       4.5、當(dāng)線(xiàn)程調(diào)用wait()方法后會(huì)進(jìn)入等待隊(duì)列(進(jìn)入這個(gè)狀態(tài)會(huì)釋放所占有的所有資源,與阻塞狀態(tài)不同),進(jìn)入這個(gè)狀態(tài)后,是不能自動(dòng)喚醒的,必須依靠其他線(xiàn)程調(diào)用notify()或notifyAll()方法才能被喚醒(由于notify()只是喚醒一個(gè)線(xiàn)程,但我們由不能確定具體喚醒的是哪一個(gè)線(xiàn)程,也許我們需要喚醒的線(xiàn)程不能夠被喚醒,因此在實(shí)際使用時(shí),一般都用notifyAll()方法,喚醒有所線(xiàn)程),線(xiàn)程被喚醒后會(huì)進(jìn)入鎖池,等待獲取鎖標(biāo)記。

    總算全部回憶了一遍JDK1.5在API的使用上有了較好的改進(jìn),效率得到很大的提高,不過(guò)幾個(gè)狀態(tài)轉(zhuǎn)換的原理還是一樣。

    額……不過(guò)那一段凄慘而美麗的愛(ài)情故事還沒(méi)完全想起來(lái),那天全部回憶起來(lái)了在寫(xiě)吧。
    posted on 2009-06-04 00:06 Liver 閱讀(2191) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): CoreJava

    FeedBack:
    # re: 線(xiàn)程7種狀態(tài)的相互轉(zhuǎn)換
    2009-06-26 12:08 | yjw
    # re: 線(xiàn)程7種狀態(tài)的相互轉(zhuǎn)換
    2013-03-19 17:15 | 11
    不錯(cuò)不錯(cuò),分析的好。  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    <2009年6月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    常用鏈接

    留言簿

    隨筆分類(lèi)(5)

    隨筆檔案(5)

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 精品视频一区二区三区免费| 免费中文字幕不卡视频| 中文字幕av免费专区| 亚洲综合一区无码精品| 亚洲乱码在线观看| 亚洲av中文无码乱人伦在线咪咕| 免费观看的毛片手机视频| 午夜精品射精入后重之免费观看| 四虎国产精品永免费| 亚洲国产精品久久久久秋霞小 | 校园亚洲春色另类小说合集| 亚洲性一级理论片在线观看| 亚洲精品乱码久久久久久按摩| 可以免费观看的一级毛片| 成人au免费视频影院| 亚洲av无码专区国产不乱码 | 中文字幕无码免费久久| 亚洲视频一区在线观看| 亚洲精品无码专区久久久| 免费国产在线观看老王影院| 成人免费a级毛片无码网站入口 | 亚洲精品美女在线观看| 在线观看成人免费视频| 久久A级毛片免费观看| 免费国产成人α片| 在线观看免费播放av片| 国产一级高青免费| 成人网站免费大全日韩国产| 一区二区三区免费视频播放器| 免费大片黄在线观看| 亚洲第一页在线观看| 亚洲视频在线观看免费| 亚洲一区二区三区首页| 亚洲综合一区二区国产精品| 亚洲五月六月丁香激情| 78成人精品电影在线播放日韩精品电影一区亚洲 | 免费精品国自产拍在线播放| 丰满亚洲大尺度无码无码专线| 青青青亚洲精品国产| 免费人成再在线观看网站| yellow免费网站|