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

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

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

    一磕一碰

    js/java

    統(tǒng)計

    留言簿

    閱讀排行榜

    評論排行榜

    2012年12月4日 #

    通過wait和notify實現(xiàn)的生產(chǎn)者消費者demo

    Java代碼  :
    import java.util.ArrayList;  
    import java.util.List;  
    /** 
     * 通過wait和notify實現(xiàn)的生產(chǎn)者消費者demo 
     * User: zhangb 
     * Date: 12-12-1 
     * Time: 下午7:19 
     */  
    public class ProducerAndCustomerDemo {  
        private static int capacity = 150;  
        private static List<String> basket = new ArrayList<String>(capacity);  
      
        public static void main(String[] args) {  
            // 多生產(chǎn)者與多消費者  
            int producerSize = 2;  
            Thread[] ps = new Thread[producerSize];  
            for (int i = 0, step = 500; i < producerSize; i ++) {  
                ps[i] = new Thread(new Producer((i) * step, (i+1) * step), "生產(chǎn)-->線程--" + (i+1));  
                ps[i].start();  
            }  
      
            int customerSize = 10;  
            Thread[] cs = new Thread[customerSize];  
            for (int i = 0; i < customerSize; i ++) {  
                cs[i] = new Thread(new Customer(), "消費線程--" + (i+1));  
                cs[i].start();  
            }  
      
            // 等待生產(chǎn)線程結(jié)束并中斷消費線程  
            for (int i = 0; i < producerSize; i ++) {  
                try {  
                    ps[i].join();  
                } catch (InterruptedException e) {  
                    e.printStackTrace();  
                }  
            }  
            for (int i = 0; i < customerSize; i ++) {  
                cs[i].interrupt();  
            }  
        }  
        static class Producer implements Runnable {  
            private int start;  
            private int end;  
      
            Producer(int start, int end) {  
                this.start = start;  
                this.end = end;  
            }  
      
            @Override  
            public void run() {  
                for (int i = start; i < end; i ++) {  
                    synchronized (basket) {  
                        try {  
                            while (basket.size() == capacity) {  
                                basket.wait();  
                            }  
                            String p = " PRO" + i;  
                            System.out.println(Thread.currentThread().getName() + p);  
                            basket.add(p);  
                            basket.notifyAll();  
                            Thread.yield(); // 讓出當(dāng)前線程的執(zhí)行權(quán),有利于看出交替線程運行的效果  
                        } catch (InterruptedException e) {  
                            e.printStackTrace();  
                            break;  
                        }  
                    }  
                }  
            }  
        }  
        static class Customer implements Runnable {  
            @Override  
            public void run() {  
                while (true) {  
                    synchronized (basket) {  
                        try{  
                            while (basket.size() == 0) {  
                                basket.wait();  
                            }  
                            System.out.println(Thread.currentThread().getName() + basket.remove(0));  
                            basket.notifyAll();  
                        } catch (InterruptedException e) {  
                            System.out.println(Thread.currentThread().getName() + "退出");  
                            break;  
                        }  
                    }  
                }  
            }  
        }  
    }  

    posted @ 2012-12-04 10:06 一磕一碰 閱讀(188) | 評論 (0)編輯 收藏

    僅列出標(biāo)題  
    主站蜘蛛池模板: 又黄又大的激情视频在线观看免费视频社区在线 | 三年片在线观看免费大全电影| 亚洲国模精品一区| 一区二区三区视频免费| 红杏亚洲影院一区二区三区| 国产久爱免费精品视频| 亚洲精品无码永久中文字幕| 久久久99精品免费观看| 亚洲综合色丁香麻豆| 日本三级2019在线观看免费| 亚洲中文字幕久久久一区| 成年在线网站免费观看无广告| 亚洲s码欧洲m码吹潮| 亚洲精品国产高清嫩草影院| aa午夜免费剧场| 老司机亚洲精品影院| 成人性生交大片免费看无遮挡 | 亚洲电影在线免费观看| 久久精品免费一区二区喷潮| 久久精品国产亚洲av品善| 亚洲日韩在线观看| 91福利视频免费| 亚洲精品乱码久久久久久蜜桃图片| 免费欧洲美女牲交视频| 免费人成激情视频在线观看冫| 亚洲高清视频免费| 免费高清小黄站在线观看| 人妻免费久久久久久久了| 亚洲天堂男人天堂| 国产美女精品视频免费观看| A毛片毛片看免费| 亚洲ts人妖网站| 亚洲精品老司机在线观看| 久久aⅴ免费观看| 亚洲A∨精品一区二区三区下载| 色噜噜AV亚洲色一区二区| 男女免费观看在线爽爽爽视频 | 在线观看AV片永久免费| 一级毛片免费一级直接观看| 亚洲综合网美国十次| 亚洲高清视频一视频二视频三|