<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())一段時間然后再去判斷是否更新,如此反復直到數據可用,這就是所述的輪詢機制??梢钥闯鲚喸儥C制需要不斷的輪詢數據狀態,很耗費資源;當采用通知機制時過程是這樣的,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 徐辛波 閱讀(1275) 評論(0)  編輯  收藏 所屬分類: source pieces

    導航

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

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲手机中文字幕| 无码天堂亚洲国产AV| 一级毛片免费播放视频| 美女视频黄的全免费视频网站| 亚洲午夜精品久久久久久浪潮| 亚洲无吗在线视频| 一级毛片在线观看免费| 亚洲国产电影av在线网址| 亚洲一区二区三区成人网站| 午夜无码A级毛片免费视频| 亚洲男人在线无码视频| 亚洲性无码AV中文字幕| 曰批全过程免费视频网址| 亚洲欧洲自拍拍偷午夜色无码| www亚洲精品久久久乳| 免费精品国产自产拍在| 亚洲欧洲免费视频| 国产精品无码免费专区午夜| 国产精品免费视频网站| 亚洲天堂男人影院| 国产精彩免费视频| 亚洲91av视频| 中文字幕免费在线看线人动作大片| 国产精品免费视频播放器| 亚洲熟妇自偷自拍另欧美| 100000免费啪啪18免进| 亚洲一区精品中文字幕| 免费人成毛片动漫在线播放| 成人午夜亚洲精品无码网站 | 国产91在线|亚洲| 91精品国产免费入口| 亚洲va无码手机在线电影| 一级人做人爰a全过程免费视频 | 亚洲av色影在线| 大地资源在线资源免费观看| 国产亚洲精品激情都市| 一区二区三区免费在线视频 | 免费影院未满十八勿进网站| 亚洲视频一区二区在线观看| 久久一本岛在免费线观看2020| 亚洲爆乳无码一区二区三区|