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

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

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

    愛睡覺的程序員

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      5 隨筆 :: 0 文章 :: 0 評論 :: 0 Trackbacks
         Semaphore,是用于控制一組線程訪問資源。舉個例子,老師上課,同學需要上廁所,老師準備了3個令牌,拿到令牌的同學就可以去上廁所,上完廁所的同學需要歸還令牌。這樣就最多同時只有3名同學上廁所。這就是Semaphore的應用場景。
        Semaphore的構造函數可初始化令牌數量、是否公平鎖。如果是公平鎖,先申請令牌的可以先獲取。
        acquire() 和release()分別是獲取和釋放令牌,acquire(int) 和release(int) 分別是獲取和釋放多個令牌。
        例子實現如下:
    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 閱讀(437) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 成年大片免费视频| 免费精品人在线二线三线区别| www.亚洲色图.com| 亚洲AV无码国产剧情| 日本久久久免费高清| 久久精品国产亚洲AV未满十八| 国产嫩草影院精品免费网址| 国产成人综合亚洲| 亚洲国产高清在线一区二区三区| 一级特黄色毛片免费看| 亚洲啪啪综合AV一区| 国产永久免费高清在线| 亚洲网址在线观看| 国产一卡2卡3卡4卡2021免费观看| 亚洲国产精品久久人人爱| 无人影院手机版在线观看免费 | 女人18毛片水真多免费看 | 国产自产拍精品视频免费看| 亚洲AV成人片无码网站| 亚洲国产精品视频| 久久免费精品视频| 亚洲Av无码一区二区二三区| 女人与禽交视频免费看| 一区二区三区免费视频观看| 亚洲av无码一区二区三区乱子伦| av无码久久久久不卡免费网站| 亚洲国产精品免费观看| 免费在线一级毛片| 无码专区AAAAAA免费视频| 亚洲人成网站看在线播放| 国产在线不卡免费播放| 曰批全过程免费视频在线观看无码 | 亚洲AV无码一区二三区| 三级网站在线免费观看| 亚洲另类古典武侠| 四虎永久免费地址在线观看| 久久aⅴ免费观看| 亚洲狠狠色丁香婷婷综合| 亚洲国产另类久久久精品小说| 4虎永免费最新永久免费地址| 免费的黄色的网站|