中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

skywang12345

導航

 

 

多線程(cheng)是Java中(zhong)(zhong)不可避免的(de)一個重要主體。從本章開始,我(wo)們(men)將展開對(dui)多線程(cheng)的(de)學(xue)習。接下來的(de)內(nei)(nei)容,是對(dui)“JDK中(zhong)(zhong)新增JUC包”之前的(de)Java多線程(cheng)內(nei)(nei)容的(de)講解,涉及到的(de)內(nei)(nei)容包括,Object類中(zhong)(zhong)的(de)wait(), notify()等接口;Thread類中(zhong)(zhong)的(de)接口;synchronized關鍵字。

注:JUC包是指,Java.util.concurrent包,它是由Java大師Doug Lea完成并在JDK1.5版本添加到Java中的。


在(zai)進入后面(mian)章節的(de)學(xue)習(xi)之前,先對(dui)了解一些多(duo)線程的(de)相關概(gai)念(nian)。
線程(cheng)狀態(tai)圖

說明
線(xian)程共包括以(yi)下5種(zhong)狀態。
1. 新建狀態(New)         : 線程對象被創建后,就進入了新建狀態。例如,Thread thread = new Thread()。
2. 就緒狀態(Runnable): 也被稱為“可執行狀態”。線程對象被創建后,其它線程調用了該對象的start()方法,從而來啟動該線程。例如,thread.start()。處于就緒狀態的線程,隨時可能被CPU調度執行。
3. 運行狀態(Running) : 線程獲取CPU權限進行執行。需要注意的是,線程只能從就緒狀態進入到運行狀態。
4. 阻塞狀態(Blocked)  : 阻塞狀態是線程因為某種原因放棄CPU使用權,暫時停止運行。直到線程進入就緒狀態,才有機會轉到運行狀態。阻塞的情況分三種:
    (01) 等待阻塞 -- 通過調用線程的wait()方法,讓線程等待某工作的完成。
    (02) 同步阻塞 -- 線程在獲取synchronized同步鎖失敗(因為鎖被其它線程所占用),它會進入同步阻塞狀態。
    (03) 其他阻塞 -- 通過調用線程的sleep()或join()或發出了I/O請求時,線程會進入到阻塞狀態。當sleep()狀態超時、join()等待線程終止或者超時、或者I/O處理完畢時,線程重新轉入就緒狀態。
5. 死亡狀態(Dead)    : 線程執行完了或者因異常退出了run()方法,該線程結束生命周期。

 

這(zhe)5種狀態涉(she)及到(dao)的內(nei)容(rong)包括Object類, Thread和(he)synchronized關(guan)鍵(jian)字(zi)。這(zhe)些內(nei)容(rong)我(wo)們(men)會在后面的章節中(zhong)逐個(ge)進行(xing)學習。
Object類,定義了wait(), notify(), notifyAll()等休眠/喚醒函數。
Thread類,定義了一些列的線程操作函數。例如,sleep()休眠函數, interrupt()中斷函數, getName()獲取線程名稱等。
synchronized,是關鍵字;它區分為synchronized代碼塊和synchronized方法。synchronized的作用是讓線程獲取對象的同步鎖。
在(zai)后(hou)面(mian)詳細介紹wait(),notify()等方法時(shi),我們會分析為什么(me)“wait(), notify()等方法要定義在(zai)Object類,而不(bu)是Thread類中”。

 

posted on 2014-01-09 22:38  如果天空不死  閱讀(41802)  評論(15)    收藏  舉報