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; } }
相关推荐
用java模拟生产者和消费者在缓冲区间的阻塞情况。
java多线程实现生产者和消费者
java实现生产者消费者,生产者先生产,然后通知消费者消费,然后再通知生产者生产
本代码是用JAVA实现的生产者与消费者的问题,线程间的同步与互斥功能
生产者和消费者问题以及哲学家就餐问题,JAVA实现的程序.rar产者和消费者问题以及哲学家就餐问题,JAVA实现的程序.rar
基本满足操作系统课上要求,java实现的生产者消费者模型。
生产者消费者问题 Java实现 线程同步 线程通信生产者消费者问题 Java实现 线程同步 线程通信生产者消费者问题 Java实现 线程同步 线程通信
设计目的:通过研究Linux 的进程机制和信号量实现生产者消费者问题的并发控制。说明:有界缓冲区内设有20 个存储单元,放入/取出的数据项设定为1‐20 这20 个整型数。设计要求:1)每个生产者和消费者对有界缓冲区...
编写一个“生产者-消费者”的多线程演示程序,两个生产者,一个消费者,可以存放产品的仓库容量为10,仓库用栈实现,并有同步功能,且能防止先消费后生产的情况。
用java多线程,实现生产者消费者同步和互斥的问题,操作系统中的经典问题
生产者与消费者的问题一直都是初级编程这需要了解的内容。
java 实现操作系统的消费者生产者问题
用java多线程简易实现生产者消费者模式的代码,用java多线程简易实现生产者消费者模式的代码。
java线程实现的生产者和消费者的程序java线程实现的生产者和消费者的程序
利用Java多线程实现的操作系统的生产者与消费者算法,主要用到了线程的同步,等待与唤醒操作。
详细的生产者消费者的java实现过程,详细的生产者消费者的java实现过程,详细的生产者消费者的java实现过程
设计目的:通过研究Linux 的进程机制和信号量实现生产者消费者问题的并发控制. 说明:有界缓冲区内设有20个存储单元,放入/取出的数据项设定为1-20这20个整型数. 设计要求:(1)每个生产者和消费者对有界缓冲区进行操作后...
生产者与消费者问题,用java实现线程
用Java实现消费者与生产者两个线程进行调度
java实现生产者消费者问题