package com.com.henu;
/*
定义一个售货员类,作为生产者与消费者的中间类*/
public class Clerk {private int product = 0;public synchronized void addProduct(){//我们定义售货员最多拿10个,如果超过10个则使生产者停止生产。此时只能去调用消费者线程。if (product >= 10){try {wait();} catch (InterruptedException e) {e.printStackTrace();}}else{product++;System.out.println("Productor product " + product + "productions.");notify();}}public synchronized void getProduct(){//如果产品if (product <= 0){try {wait();} catch (InterruptedException e) {e.printStackTrace();}}else{System.out.println("Consumer Consume " + product + "productions.");product--;notify();}}
}
package com.com.henu;public class MainClass {public static void main(String[] args) {Clerk c = new Clerk();new Consumer(c).start();new Productor(c).start();}
}class Consumer extends Thread{Clerk clerk;public Consumer(Clerk clerk) {this.clerk = clerk;}@Overridepublic void run() {while(true){//死循环try {Thread.sleep(300);} catch (InterruptedException e) {e.printStackTrace();}clerk.getProduct();}}
}class Productor extends Thread{Clerk clerk;public Productor(Clerk clerk) {this.clerk = clerk;}@Overridepublic void run() {while(true){try {Thread.sleep(300);} catch (InterruptedException e) {e.printStackTrace();}clerk.addProduct();}}
}

java线程----生产者和消费者问题相关推荐

  1. Java多线程-生产者与消费者

    Java多线程生产者与消费者,准确说应该是"生产者-消费者-仓储"模型,使用了仓储,使得生产者消费者模型就显得更有说服力. 对于此模型,应该明确一下几点: 1.生产者仅仅在仓储未满 ...

  2. Java中生产者和消费者总结

    生产者和消费者问题是线程模型中的经典问题,生产者和消费者在同一时间段共用同一个存储空间,这个存储空间是一个缓冲区的仓库,生产者可以将产品放入仓库,消费者可以从仓库中取出产品. 生产者/消费者模型是基于 ...

  3. java 线程同步的list_java线程生产者与消费者实例(使用List实现同步)

    过多的线程同步可能会造成死锁 死锁通俗来讲就是两个或者两个以上线程,占用了对方下一步所需要的资源,多个线程僵持都无法结束任务的状态 生产者和消费者模式是一个多线程同步的经典案例 它利用信号灯来判断线程 ...

  4. Java线程生产者消费者问题详解

    问题描述         生产者消费者问题(Producer-consumer problem),也称有限缓冲问题(Bounded-buffer problem),是一个多线程同步问题的经典案例.生产 ...

  5. Java中生产者与消费者问题的演变

    想要了解更多关于Java生产者消费者问题的演变吗?那就看看这篇文章吧,我们分别用旧方法和新方法来处理这个问题. 生产者消费者问题是一个典型的多进程同步问题. 对于大多数人来说,这个问题可能是我们在学校 ...

  6. java多线程生产者与消费者问题_Java多线程详解之四:生产者消费者问题

    一.问题描述 生产者消费者问题(Producer-Consumer problem),也称有限缓冲区问题(Bounded-buffer promblem),是一个多线程同步问题的经典案例.对于一个固定 ...

  7. java多线程生产者与消费者案例_多线程操作实例——生产者与消费者

    面对多线程学习生产者与消费者是最基本的实例 对于java后端开发的人员必须要掌握,还有考研考试计算机操作系统的同鞋. 下面是三个实例对于生产者与消费者的的例子,层层递进,逐步解决问题. 问题:生产者- ...

  8. java实现生产者和消费者 类比消息中间件

    一.对生产者消费者的理解 生产者消费者模式是并发.多线程编程中经典的设计模式. 简单来看,就是一个类负责生产,一个类负责消费.举例来说,一个变量,生产者不断增加这个变量,消费者不断减少这个变量.在互联 ...

  9. java多线程生产者与消费者问题_java多线程实现生产者与消费者问题

    生产者与消费者多线程实现,首先的问题就是同步,就是关于临界资源的访问 我们首先来定义一个临界资源类,这里设为Q class Q { int z=4; } 这个int型的z就是我假设的临界资源的个数 然 ...

最新文章

  1. java模拟国际象棋游戏_java国际象棋小游戏
  2. Oracle-数据字典解读
  3. 160家优秀国外技术公司博客
  4. ZBarSDK扫描二维码
  5. asp.net出现:当前标识(NT AUTHORITY\NETWORK SERVICE)没有对' '的写访问权限。
  6. 迪普科技高端防火墙规模应用于海关总署 提供整网安全防护
  7. 马斯克推崇的第一性原理,究竟有多重要?
  8. 15个创意示例教您如何自定义 404 错误页面
  9. nfine框架 上传文件_MVC之Struts2框架--你并不了解的高级应用
  10. OMNeT学习之OMNeT安装与运行
  11. YOLOv3使用自己数据集——Kmeans聚类计算anchor boxes
  12. 【BZOJ4198】荷马史诗,贪心之k叉哈夫曼树
  13. php怎么限制文章标题的字数,文章标题在WordPress中显示的长度即字数如何限制呢?...
  14. 乱码问题_win7 64位系统出现字体乱码的问题
  15. 华为认证hcia含金量_华为hcna认证用处大吗 什么是hcna
  16. php运行日志在哪里看,thinkphp错误日志在哪
  17. forEach终止循环
  18. Discuz门户模板乱码解决方案
  19. Spark - RangePartitioner rangeBounds 生成 源码分析 实践
  20. 【FXCG】心态问题出现的原因

热门文章

  1. HDU - 4511 小明系列故事——女友的考验(AC自动机+dp)
  2. java中spring的级别_java – 在简单的示例项目中更改Spring框架日志级别?
  3. QT乱码总结0.Qt乱码产生因素
  4. mov eax,dword ptr fs:[0] 指令
  5. 【Boost】boost库中智能指针——weak_ptr
  6. 抓取dump的头文件
  7. MySQL 锁与MVCC :数据库的锁、MVCC、当前读、快照读、锁算法、死锁
  8. 抖音直播间弹幕protocbuf分析
  9. python wav模块获取采样率, 采样点,声道,量化位数和时间
  10. 为什么说Prometheus是足以取代Zabbix的监控神器?