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

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

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

    也談線程的休眠與等待

    關于線程間的交互和共享數據通常有輪詢和通知機制。一下舉例說明:Thread1和Thread2共享一塊數據ShareData,Thread1使用數據,Thread2更新數據。當Thread1使用數據時發現數據沒有更新就可以先休眠(sleep())一段時間然后再去判斷是否更新,如此反復直到數據可用,這就是所述的輪詢機制。可以看出輪詢機制需要不斷的輪詢數據狀態,很耗費資源;當采用通知機制時過程是這樣的,Thread1發現數據不可用就在ShareData上等待(ShareData.wait()),當Thread2更新數據后就通知所有在ShareData上等待的線程(ShareData.notifyAll()),這樣Thread1受到通知繼續運行。

    關于等待和休眠還有另一個區別就是當線程等待時,該線程鎖定的資源是釋放掉的,這時其它線程是可以鎖定這些資源的,當線程被喚醒或者等待時限到時線程重新獲取資源才能繼續運行;而當線程休眠時線程鎖定的資源是不被釋放的。

    還有一點就是要在對象lock上等待時是必須先要獲取lock的對象鎖才能進行的,即必須要類似下面的邏輯 synchronized(lock){ lock.wait()}

    以下為一個簡單的示例:

    package  sinpo.usagedemo;

    /**
      * 該例子說明線程休眠與等待以及注意事項。
     
      @author  徐辛波(sinpo.xu@hotmail.com) 
      * Oct 22, 2008
      */
    public class  PendingThreadDemo  {
         public  Console console =  new  Console () ;
         private  void  writeToConsole1 () {
             synchronized ( console ){
                 try  {
                     Thread.sleep ( 1000 ) ; //NOTE:sleep時并未釋放console別的線程是不能鎖定console的
                     //TODO do things
                 catch  ( InterruptedException e ) {
                     e.printStackTrace () ;
                 }
             }
         }
        
         private  void  writeToConsole2 () {
             synchronized ( console ){
                 try  {
                     console.wait ( 1 * 1000 ) ; //NOTE:wait時別的線程是可以鎖定console的
                     //TODO do things
                 catch  ( InterruptedException e ) {
                     e.printStackTrace () ;
                 }
             }
         }
    }
    //控制臺類
    class  Console  {
         //TODO implements me
    }

    posted on 2008-10-22 23:26 徐辛波 閱讀(1271) 評論(0)  編輯  收藏 所屬分類: source pieces

    導航

    <2008年10月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成年女人免费视频播放体验区| 中文在线免费视频| 亚洲一级毛片免费看| 99久久亚洲精品无码毛片| 久久久精品免费国产四虎| 亚洲一区视频在线播放| 人妻巨大乳hd免费看| 亚洲第一永久AV网站久久精品男人的天堂AV | 成人免费777777| 中国亚洲呦女专区| 天天操夜夜操免费视频| 亚洲kkk4444在线观看| 最近2019中文字幕mv免费看| 亚洲无mate20pro麻豆| 日韩免费视频观看| 免费看黄福利app导航看一下黄色录像| 可以免费观看一级毛片黄a| 男人j进女人p免费视频| 久久精品国产亚洲5555| 久久久久久免费一区二区三区| 久久久亚洲精品视频| 最近在线2018视频免费观看| 7777久久亚洲中文字幕| 永久免费AV无码网站在线观看| 男女猛烈激情xx00免费视频| 国产国拍精品亚洲AV片| 99久久免费观看| 国产精品亚洲综合五月天| 国产极品粉嫩泬免费观看| 中文字幕不卡高清免费| 亚洲高清无在码在线无弹窗 | 亚洲日本天堂在线| 亚洲精品99久久久久中文字幕| 成人自慰女黄网站免费大全| 国产午夜亚洲精品国产| 免费va在线观看| 久久久久久国产精品免费免费男同| 亚洲AV永久无码区成人网站| 国产免费AV片在线播放唯爱网| 成a人片亚洲日本久久| 久久精品国产亚洲网站|