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();
        }
    
    
    
    
    
    
    
    
    
    
    }
  • 相关阅读:
    PHP常量
    jquery中的几种常用总结
    jquery中的ajax
    常用的jquery一些总结
    js验证手机号邮箱号用户名
    PHP优化杂烩
    一个php开发的用于路由器的小功能
    HTML <form>
    window.open
    try&catch
  • 原文地址:https://www.cnblogs.com/noaman/p/6833163.html
Copyright © 2011-2022 走看看