JavaSE基础使用阻塞队列实现生产消费者模式

使用阻塞队列实现生产消费者模式

package com.thread.cooperation;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingDeque;

/** 
 * @ClassName: 
 * @author: YDJ
 * @Date: 2019年11月3日 下午10:35:28
 * @description: 使用阻塞队列实现生成消费者模式
 */

public class Demo3 {
	public static void main(String[] args) {
		//创建阻塞队列(先进先出)
		BlockingQueue<Integer> prQueue = new LinkedBlockingDeque<Integer>(4);
		new Thread(new ProducerQeueu(prQueue),"AA").start();
		new Thread(new ConsumerQueue(prQueue),"BB").start();
		
	}

}

//生产者队列
class ProducerQeueu implements Runnable{
	
	private BlockingQueue<Integer> proQueue;
	
	public ProducerQeueu(BlockingQueue<Integer> proQueue) {
		this.proQueue = proQueue;
	}
	
	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			System.out.println("生产了编号为:"+i);
			try {
				Thread.sleep(1000);
				proQueue.put(i);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
		}
		
	}
	
}



//消费者队列
class ConsumerQueue implements Runnable{
	private BlockingQueue<Integer> proQueue;
	
	public ConsumerQueue(BlockingQueue<Integer> proQueue) {
		this.proQueue = proQueue;
	}

	@Override
	public void run() {
		
		for (int i = 0; i < 10; i++) {
			try {
				System.out.println("消费了编号为:"+proQueue.take());
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				
				e.printStackTrace();
			}
		}
		
	}
	
	
	
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页