zoukankan      html  css  js  c++  java
  • Java生产者/消费者模型

    package gj.concurrent.customerproducer;
    
    import java.util.concurrent.ArrayBlockingQueue;
    import java.util.concurrent.BlockingQueue;
    
    /**
     * Author: areful
     */
    public class ProducerConsumerSample {
        private static class Producer implements Runnable {
            private final BlockingQueue<Object> queue;
    
            private Producer(BlockingQueue<Object> q) {
                queue = q;
            }
    
            public void run() {
                try {
                    while (true) {
                        queue.put(produce());
                    }
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
    
            private Object produce() {
                return "producing a new object: " + new Object();
            }
        }
    
        private static class Consumer implements Runnable {
            private final BlockingQueue queue;
    
            private Consumer(BlockingQueue q) {
                queue = q;
            }
    
            public void run() {
                try {
                    while (true) {
                        consume(queue.take());
                    }
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
    
            private void consume(Object x) {
                System.out.println("consuming object: " + x);
            }
        }
    
        public static void main(String[] args) {
            BlockingQueue<Object> q = new ArrayBlockingQueue<>(10);
            Producer p = new Producer(q);
            Consumer c1 = new Consumer(q);
            Consumer c2 = new Consumer(q);
            new Thread(p).start();
            new Thread(c1).start();
            new Thread(c2).start();
        }
    }
    

      

  • 相关阅读:
    R语言 单变量重命名与删除
    R语言 查看函数源代码
    R语言 for循环之break,next
    ROC & AUC笔记
    rmarkdown教程
    github教程
    logistic regression与SVM
    sql语句,order by
    将权重加载到不同的结构(有一些共同层)
    人脸识别数据集
  • 原文地址:https://www.cnblogs.com/areful/p/10395793.html
Copyright © 2011-2022 走看看