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

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

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

    愛睡覺的程序員

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      5 隨筆 :: 0 文章 :: 0 評論 :: 0 Trackbacks
         Semaphore,是用于控制一組線程訪問資源。舉個例子,老師上課,同學需要上廁所,老師準備了3個令牌,拿到令牌的同學就可以去上廁所,上完廁所的同學需要歸還令牌。這樣就最多同時只有3名同學上廁所。這就是Semaphore的應用場景。
        Semaphore的構(gòu)造函數(shù)可初始化令牌數(shù)量、是否公平鎖。如果是公平鎖,先申請令牌的可以先獲取。
        acquire() 和release()分別是獲取和釋放令牌,acquire(int) 和release(int) 分別是獲取和釋放多個令牌。
        例子實現(xiàn)如下:
    import java.util.Random;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Semaphore;
    import java.util.concurrent.TimeUnit;

    /**
     * Created by ganliang on 15/2/26.
     
    */
    public class SemaphoreTest {
        private static Semaphore semaphore = new Semaphore(3,true);
        public static void main(String[] args) {
            ExecutorService executorService = Executors.newCachedThreadPool();

            for (int i=0;i<10;i++){
                executorService.submit(new Student("學生"+i));
            }
            executorService.shutdown();
        }
        static class Student implements Runnable{
            private String name;
            public Student(String name){
                this.name = name;
            }
            @Override
            public void run() {
                try {
                    semaphore.acquire();
                    System.out.println(name+"拿到令牌,上廁所");
                    TimeUnit.SECONDS.sleep(new Random().nextInt(10));
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                semaphore.release();
                System.out.println(name+"歸還令牌,上課");
            }
        }
    }
    posted on 2015-02-26 18:10 polang 閱讀(436) 評論(0)  編輯  收藏

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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 1000部禁片黄的免费看| 免费无码一区二区三区蜜桃| 国产精品色午夜免费视频| 亚洲国产精品免费在线观看| 久久午夜夜伦鲁鲁片无码免费| 亚洲精品高清无码视频| 免费av一区二区三区| 亚洲AV日韩AV永久无码下载| 久久免费视频观看| 久久精品国产亚洲AV嫖农村妇女| 人妻无码久久一区二区三区免费| 亚洲视频欧洲视频| 免费大片黄在线观看yw| 亚洲日本一线产区和二线| 女人18一级毛片免费观看| 久久精品国产亚洲av瑜伽| 亚洲精品动漫人成3d在线 | 99精品国产成人a∨免费看| 亚洲成a人片77777老司机| 久久www免费人成看片| 亚洲AV色吊丝无码| 三年片在线观看免费观看大全中国 | 91免费精品国自产拍在线不卡| 亚洲伊人久久大香线蕉结合| 女人张开腿等男人桶免费视频| 男女超爽视频免费播放| 亚洲熟妇无码AV在线播放| 免费人成视频在线观看网站| 亚洲av乱码一区二区三区| 免费很黄很色裸乳在线观看| 精品成人免费自拍视频| 亚洲黄页网在线观看| 日本亚洲国产一区二区三区| 久久国产色AV免费看| 亚洲精品无码专区在线播放| 久久久久亚洲av毛片大| 国产精品亚洲专区一区| 亚洲精品白浆高清久久久久久 | 亚洲国产精品成人午夜在线观看| 亚洲福利精品一区二区三区| 色欲A∨无码蜜臀AV免费播|