<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 瘋狂 閱讀(689) 評論(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();
           }
         }
       }

     


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


    網站導航:
     
    主站蜘蛛池模板: 蜜桃视频在线观看免费视频网站WWW| 一区二区三区免费精品视频 | 在线精品自拍亚洲第一区| 曰曰鲁夜夜免费播放视频 | 免费人成视频在线观看视频| 亚洲熟女乱色一区二区三区| 在线观看免费污视频| 亚洲国产综合AV在线观看| 国产美女a做受大片免费| 国产精品亚洲专区无码WEB| 国产做床爱无遮挡免费视频| 爱情岛论坛免费视频| 激情综合色五月丁香六月亚洲| 91国内免费在线视频| 亚洲欧洲日产国产综合网| 亚洲免费观看网站| 一区二区亚洲精品精华液| 国产成人aaa在线视频免费观看| 曰批免费视频播放免费| 亚洲精品制服丝袜四区| 18禁止看的免费污网站| 亚洲午夜精品久久久久久app| 日韩a级毛片免费视频| 免费无遮挡无码视频在线观看| 亚洲综合色成在线播放| 久久99精品免费视频| 亚洲国产av一区二区三区丶| 日韩高清在线高清免费| 国产免费一级高清淫曰本片| 久久亚洲私人国产精品| 麻豆国产入口在线观看免费| 一区二区三区在线观看免费| 亚洲一区二区电影| 性做久久久久免费观看| 成人性生交大片免费看中文| 亚洲免费网站在线观看| 亚洲成年看片在线观看| 无码少妇精品一区二区免费动态| 亚洲色一区二区三区四区| 亚洲永久精品ww47| 最新中文字幕免费视频|