package Interview;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
class 生产者 implements Runnable{
BlockingQueue<String>queue;
public 生产者(BlockingQueue<String> queue){
this.queue=queue;
}
public void run() {
try{
String temp="生产线程:"+Thread.currentThread().getName();
System.out.println("生产:"+Thread.currentThread().getName());
queue.put(temp);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
class 消费者 implements Runnable{
BlockingQueue<String>queue;
public 消费者(BlockingQueue<String>queue){
this.queue=queue;
}
@Override
public void run() {
try {
String temp=queue.take();
System.out.println(temp);
} catch (InterruptedException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
public class 生产者_消费者 {
public static void main(String[] args) {
// TODO Auto-generated method stub
BlockingQueue<String>queue=new LinkedBlockingQueue<String>(2);
生产者 producer=new 生产者(queue);
消费者 customer=new 消费者(queue);
for(int i=0;i<5;i++){
new Thread(producer,"producer"+(i+1)).start();
new Thread(customer,"customer"+(i+1)).start();
}
}
}
生产者——消费者 blockingqueue实现
最新推荐文章于 2021-02-26 23:12:01 发布
本文介绍了一个使用Java实现的简单生产者-消费者模式案例。通过`BlockingQueue`接口的具体实现`LinkedBlockingQueue`,实现了多线程环境下的生产者与消费者的同步操作。该示例创建了一个容量为2的队列,并启动了5个生产者线程和5个消费者线程进行并发测试。
摘要由CSDN通过智能技术生成