<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();
           }
         }
       }

     


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品自在线一区二区 | 亚洲真人无码永久在线| 中国一级特黄高清免费的大片中国一级黄色片| 久久亚洲中文字幕精品一区四| 国内永久免费crm系统z在线| 亚洲中文字幕久在线| 亚洲高清偷拍一区二区三区| 一区二区三区无码视频免费福利| 亚洲一区中文字幕在线电影网| 亚洲av无码成人精品区| 国产成人AV片无码免费| 亚洲av无码日韩av无码网站冲| 亚洲成AV人在线播放无码| 日本阿v免费费视频完整版| 美女18毛片免费视频| 亚洲日本精品一区二区| 国产成人免费高清在线观看 | 国产无遮挡裸体免费视频| a级精品九九九大片免费看| 亚洲午夜一区二区三区| 亚洲毛片αv无线播放一区| 99久久久国产精品免费无卡顿| ssswww日本免费网站片| 亚洲一级视频在线观看| 国产亚洲精品国产| 国产美女精品久久久久久久免费| 无码日韩精品一区二区免费暖暖 | 成人黄动漫画免费网站视频 | 黄色毛片视频免费| 亚洲精品视频专区| 国产亚洲精品a在线观看| 丁香花在线观看免费观看| 亚洲国产精品免费视频| 无码 免费 国产在线观看91| 亚洲国产精品综合久久20| 亚洲av无码成h人动漫无遮挡| 免费女人18毛片a级毛片视频| 午夜福利不卡片在线播放免费| a级毛片免费完整视频| 特级一级毛片免费看| 亚洲熟女www一区二区三区|