生产者消费者问题
Posted wqkant
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生产者消费者问题相关的知识,希望对你有一定的参考价值。
import java.util.*; public class ProducerConsumerTest{ final int BUFFER_SIZE=10;//缓冲区最大值 Queue<Integer> queue;//共享缓冲队列 public ProducerConsumerTest(){ queue=new LinkedList<Integer>(); } public static void main(String[] args){ ProducerConsumerTest PC=new ProducerConsumerTest(); int count=100; System.out.println("开始生产消费了哦"); while(count-->0){ new Thread(PC.new Producer()).start(); new Thread(PC.new Consumer()).start(); } } class Consumer implements Runnable{ @Override public void run() { synchronized(queue){ if(queue.size()==0){ try { queue.wait();//释放锁 } catch (InterruptedException e) { e.printStackTrace(); } }else{ int x=queue.remove(); System.out.println("消费 :"+x); queue.notify();//唤醒生产者 } } } } class Producer implements Runnable{ @Override public void run() { synchronized(queue){ if(queue.size()==BUFFER_SIZE){ try { queue.wait(); } catch (InterruptedException e) { e.printStackTrace(); } }else{ int x=queue.size()+1; queue.add(x); System.out.println("生产 :"+x); queue.notify(); } } } } }
以上是关于生产者消费者问题的主要内容,如果未能解决你的问题,请参考以下文章
请问如何用C语言实现“生产者与消费者问题”?(最好附上完整的C语言源代码)