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 RR隔离 读一致性
    C++奥赛一本通刷题记录(高精度)
    CodeVs天梯之Diamond
    CodeVs天梯之Gold
    CodeVs天梯之Silver
    CodeVs天梯之Bronze
    【2018.1.14】本蒟蒻又回来了
    test
    UVa12545
    UVa1149
  • 原文地址:https://www.cnblogs.com/noaman/p/6833163.html
Copyright © 2011-2022 走看看