• 生产者-消费者 用阻塞队列实现


    使用阻塞队列代码要简单得多,不需要再单独考虑同步和线程间通信的问题

    在并发编程中,一般推荐使用阻塞队列

    public class BolckQuene_Pro_Con
    {
        private int queueSize = 10;//队列允许存放的最大数
        private ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(queueSize);//阻塞队列
        
        public static void main(String[] args)  {
            BolckQuene_Pro_Con test = new BolckQuene_Pro_Con();
            Producer producer = test.new Producer();
            Consumer consumer = test.new Consumer();
             
            producer.start();
            consumer.start();
        }
        
        class Consumer extends Thread{
            @Override
            public void run() {
                consume();
            }
            private void consume() {
                while(true){
                    
                    try {
                        Thread.sleep(300);
                        queue.take();
                        System.out.println("【消费者】从队列取走一个元素,队列剩余"+queue.size()+"个元素");
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
         
        class Producer extends Thread{
            @Override
            public void run() {
                produce();
            }
            private void produce() {
                while(true){
                    try {
                        Thread.sleep(200);
                        queue.put(1);
                        System.out.println("【生产者】向队列取中插入一个元素,队列中元素:"+queue.size());
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    逃避不一定躲得过,面对不一定最难过
  • 相关阅读:
    利用cookie实现iframe刷新时停留在当前页面
    css定位学习经验记录
    用div加css做表格去掉外围边框
    利用css中的background-position定位图片
    css3实现圆形逐渐减少动画
    The Best Path
    3998
    YAPTCHA(hdu2973)
    1556 计算
    1808: 地铁
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/5231659.html
Copyright © 2020-2023  润新知