zoukankan      html  css  js  c++  java
  • 9_1_Java实现的BlockingQueue队列

    package com.nowcoder;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.boot.test.SpringApplicationConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    import java.util.concurrent.ArrayBlockingQueue;
    import java.util.concurrent.BlockingQueue;
    
    /**
     * Created by Administrator on 2017/5/9.
     */
    public class MyThread {
    
        class Producer implements Runnable{
            private BlockingQueue<String> p;
    
            public Producer(BlockingQueue p){
                this.p = p;
            }
    
    
            @Override
            public void run() {
    
                try {
                    for (int i = 0; i < 10; i++){
                        Thread.sleep(1000);
                        p.put(String.valueOf(i));
                    }
                }catch (Exception e){
                        e.printStackTrace();
                }
            }
        }
    
        class Consumer implements Runnable{
    
            private BlockingQueue<String> c;
    
            public Consumer(BlockingQueue c){
                this.c = c;
            }
    
            @Override
            public void run() {
                while (true){
                    try {
                        System.out.println(Thread.currentThread().getName() +":" + c.take());
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
    
            }
        }
    
        public void testBlockingQueue(){
            BlockingQueue<String> blockingQueue = new ArrayBlockingQueue<String>(10);
            new Thread(new Producer(blockingQueue)).start();
            new Thread(new Consumer(blockingQueue), "consumer1").start();
            new Thread(new Consumer(blockingQueue), "consumer2").start();
    
        }
    
        public static void main(String[] args){
            new MyThread().testBlockingQueue();
        }
    
    
    
    
    
    
    
    
    
    
    }
  • 相关阅读:
    MySQL笔记(6)---锁
    MySQL笔记(5)---索引与算法
    MySQL笔记(4)---表
    MySQL笔记(3)---文件
    MySQL笔记(2)---InnoDB存储引擎
    MySQL笔记(1)---MySQL体系结构和存储引擎
    生成器,迭代器,装饰器
    文件操作、def函数、模块导入、json
    数据类型、字符串操作
    基本数据类型,条件判断
  • 原文地址:https://www.cnblogs.com/noaman/p/6833163.html
Copyright © 2011-2022 走看看