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

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

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

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Condition

    Posted on 2011-10-17 17:28 瘋狂 閱讀(677) 評論(0)  編輯  收藏 所屬分類: concurrent

    Condition(條件)Object 監視器方法(waitnotifynotifyAll)分解成截然不同的對象,以便通過將這些對象與任意 Lock 實現組合使用,為每個對象提供多個等待 set (wait-set)。其中,Lock 替代了 synchronized 方法和語句的使用,Condition 替代了 Object 監視器方法的使用。
    下面解釋下Condition api里面的例子(生產者,消費者):

    public class ConditionTest {

     final Lock lock = new ReentrantLock();
         final Condition notFull  = lock.newCondition(); //生產者的前提條件,沒有達到次條件就阻塞
         final Condition notEmpty = lock.newCondition(); //消費者的前提條件,沒有達到次條件就阻塞
      
         final Object[] items = new Object[100];
         int putptr, takeptr, count;
      //生產
         public void put(Object x) throws InterruptedException {
           lock.lock();
           try {
             while (count == items.length)//如果滿了,就讓需要條件為:沒滿的的線程(生產者)等
               notFull.await();
             items[putptr] = x;
             if (++putptr == items.length) putptr = 0;
             ++count;
             notEmpty.signal();//如果已經生產了,就讓需要條件為不為空的線程(消費者)執行
           } finally {
             lock.unlock();
           }
         }
      //消費
         public Object take() throws InterruptedException {
           lock.lock();
           try {
             while (count == 0)//如果為空就讓需要條件為不為空的線程(消費者)等
               notEmpty.await();
             Object x = items[takeptr];
             if (++takeptr == items.length) takeptr = 0;
             --count;
             notFull.signal();//如果消費了,就讓條件為不滿的線程(生產者)執行
             return x;
           } finally {
             lock.unlock();
           }
         }
       }

     


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品专区在线观看| 黄网站色视频免费观看45分钟| 亚洲综合最新无码专区| 成全高清视频免费观看| 99久久人妻精品免费二区| 青青草国产免费国产是公开| 中文有码亚洲制服av片| 亚洲美女视频一区| 亚洲AV乱码一区二区三区林ゆな| 亚洲国产精品一区二区九九| 日韩中文无码有码免费视频| 成人免费观看一区二区| 午夜免费啪视频在线观看 | 久久久99精品免费观看| igao激情在线视频免费| 免费在线人人电影网| 亚洲欧洲精品成人久久曰| 亚洲H在线播放在线观看H| 亚洲自偷自拍另类图片二区| 亚洲AV日韩AV永久无码免下载| 在线观看午夜亚洲一区| 亚洲熟妇少妇任你躁在线观看无码 | 免费做爰猛烈吃奶摸视频在线观看| 久久青草免费91线频观看不卡| CAOPORN国产精品免费视频| 久草免费福利在线| 曰韩无码AV片免费播放不卡| 窝窝影视午夜看片免费| 激情吃奶吻胸免费视频xxxx| 青娱乐在线视频免费观看| 美景之屋4在线未删减免费 | 国产一区二区三区免费视频| 永久久久免费浮力影院| 日本无吗免费一二区| 国产成人精品免费视频大全五级 | 色费女人18女人毛片免费视频| 黄页网站在线免费观看| 免费大片av手机看片| 成人免费乱码大片A毛片| 精品一区二区三区高清免费观看 | 久久亚洲国产精品成人AV秋霞|