package javaTest;
//测试类
public class ProCon{
public static void main(String[] args){
SyncQueue queue = new SyncQueue();
Consumer p = new Consumer(queue);
Producer c = new Producer(queue);
new Thread(p).start();
new Thread(c).start();
}
}
//生产者
class Producer implements Runnable{
private SyncQueue queue;
private int count = 0;
public Producer(SyncQueue queue){
this.queue = queue;
}
public void run(){
while(true){
String product = "产品"+count;
queue.put(product);
count++;
System.out.println("生产了: "+product);
try{
Thread.sleep(2000);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
//消费者
class Consumer implements Runnable{
private SyncQueue queue;
public Consumer(SyncQueue queue) {
this.queue = queue;
}
public void run(){
while(true){
String product = queue.get();
System.out.println("消费了: "+product);
try{
Thread.sleep(2000);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
//公共缓冲区
class SyncQueue{
private String[] queue = new String[10];
private int index = 0;
//生产者把产品放入队列
public synchronized void put(String productor){
if(index == queue.length){
try{
wait();
}catch(InterruptedException e){
e.printStackTrace();
}
}
queue[index] = productor;
index++;
//唤醒在此对象监视器上等待的消费者线程
notify();
}
//消费者从队列中取出一个产品消费
public synchronized String get(){
if(index == 0){
try{
wait();
}catch (InterruptedException e){
e.printStackTrace();
}
}
index--;
String product = queue[index];
//唤醒在此对象监视器上等待的生产者线程
notify();
return product;
}
}
本文转自
:http://blog.csdn.net/fg2006/article/details/6878139
分享到:
相关推荐
java实现生产者消费者,生产者先生产,然后通知消费者消费,然后再通知生产者生产
生产者消费者问题 Java实现 线程同步 线程通信生产者消费者问题 Java实现 线程同步 线程通信生产者消费者问题 Java实现 线程同步 线程通信
用java多线程,实现生产者消费者同步和互斥的问题,操作系统中的经典问题
编写一个“生产者-消费者”的多线程演示程序,两个生产者,一个消费者,可以存放产品的仓库容量为10,仓库用栈实现,并有同步功能,且能防止先消费后生产的情况。
用java多线程简易实现生产者消费者模式的代码,用java多线程简易实现生产者消费者模式的代码。
基本满足操作系统课上要求,java实现的生产者消费者模型。
本代码是用JAVA实现的生产者与消费者的问题,线程间的同步与互斥功能
设计目的:通过研究Linux 的进程机制和信号量实现生产者消费者问题的并发控制。说明:有界缓冲区内设有20 个存储单元,放入/取出的数据项设定为1‐20 这20 个整型数。设计要求:1)每个生产者和消费者对有界缓冲区...
java多线程实现生产者和消费者
用java模拟生产者和消费者在缓冲区间的阻塞情况。
java实现生产者消费者问题
java 实现操作系统的消费者生产者问题
生产者与消费者的问题一直都是初级编程这需要了解的内容。
java实现生产者消费者问题,实验报告,很好的参考材料
详细的生产者消费者的java实现过程,详细的生产者消费者的java实现过程,详细的生产者消费者的java实现过程
利用Java多线程实现的操作系统的生产者与消费者算法,主要用到了线程的同步,等待与唤醒操作。
java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现多线程经典模型生产者消费java实现...
os课程设计、通过研究Linux 的进程机制和信号量实现生产者消费者问题的并发控制
用Java实现消费者与生产者两个线程进行调度
用java编写的生产者消费者问题,是经典的多线程问题