class Ck {private char[] r1 = new char[8];private int wp = 0;public synchronized void shengchan(char aa) {while (wp == r1.length) //满了try {this.wait();} catch (Exception e) {}this.notify();//叫醒另一个线程,当前线程处于就绪状态r1[wp] = aa;++wp;System.out.println( "生产者正在生产第" + wp + "个产品,该产品为" + aa );}public synchronized void xiaofei() {char aa;while (wp == 0)try {this.wait();} catch (Exception e) {}this.notify();aa = r1[wp - 1];System.out.println( "生产者正在消费第" + wp + "个产品,该产品为" + aa );--wp;}//代码生产消费问题实现}

定义生产

//生产
public class Sc implements Runnable {private Ck xc = null;public Sc(Ck xc) {this.xc = xc;}public void run() {char aa;for (int i = 0; i < 26; i++) {aa = (char) ('A' + i);xc.shengchan( aa );}}}

定义消费

//消费
public class Xf implements Runnable {private Ck xc = null;public Xf(Ck xc) {this.xc = xc;}public void run() {char aa;for (int i = 0; i < 26; i++) {aa = (char) ('A' + i);xc.xiaofei();}}}

测试类

//代码生产消费问题实现public class test119{public static void main(String[] args){Ck ck=new Ck();Sc sc=new Sc( ck );Xf xf=new Xf(ck);Thread xc1=new Thread( sc );xc1.start();Thread xc2=new Thread( xf );xc2.start();}}

运行结果

java学习(167):生产者消费者问题相关推荐

  1. JAVA线程之生产者消费者问题

    复习下JAVA线程基础知识: 1.线程的状态: 创建状态:创建了线程对象,此时线程有了相应的内存空间和其他资源,但处于不可运行状态. 就绪状态:线程对象调用start()方法启动线程,进入就绪状态,此 ...

  2. Java线程实现生产者—消费者模式

    在这里插入代码片# Java 线程实现生产者-消费者模式 ##思路:实现类似消费者生产者线程之间通讯的功能,每创建一个工人,就让这个工人干活,干一段时间,工人自动消失,然后又去创建一个工人干活: 代码 ...

  3. Java学习笔记—生产者和消费者模式

    一.生产者和消费者问题 生产者消费者模式是一个十分经典的多线程协作的模式. 生产者和消费者问题包含了两类线程:一类是生产者线程用于生产数据, 一类是消费者数据用于消费数据. /*生产者消费者案例 包含 ...

  4. Java基础学习之生产者消费者(29)

    1.1 生产者消费者模式概述 生产者消费者模式是一个十分经典的多线程协作模式,弄懂生产者消费者问题能够让我们对多线程编程理解更加深刻. 包含两类线程: 一类是生产者线程用于生产数据 一类是消费者线程用 ...

  5. java多线程之生产者消费者问题

    今天研究了一下Java多线程,根据老师上课讲的和写的,自己写了一下多线程中的经典问题-----生产者消费者经典问题, package producerconsumer; public class Pr ...

  6. Java synchronized 实现生产者-消费者模型

    synchronized synchronized (临界资源) {// 访问临界资源的代码 } 上述代码的作用是给临界资源"加锁",其他线程访问临界资源会被阻塞,目的是保证同一时 ...

  7. java consumed_Java设计模式—生产者消费者模式(阻塞队列实现)

    生产者消费者模式是并发.多线程编程中经典的 真实世界中的生产者消费者模式 生产者和消费者模式在生活当中随处可见,它描述的是协调与协作的关系.比如一个人正在准备食物(生产者),而另一个人正在吃(消费者) ...

  8. 生产者消费者 java实现_Java生产者消费者的三种实现

    Java生产者消费者是最基础的线程同步问题,java岗面试中还是很容易遇到的,之前没写过多线程的代码,面试中被问到很尬啊,面完回来恶补下.在网上查到大概有5种生产者消费者的写法,分别如下. 用sync ...

  9. java 面试题 生产者 消费者_面试大厂必看!就凭借这份Java多线程和并发面试题,我拿到了字节和美团的offer!...

    最近好多粉丝私信我说在最近的面试中老是被问到多线程和高并发的问题,又对这一块不是很了解,很简单就被面试官给问倒了,被问倒的后果当然就是被刷下去了,因为粉丝要求,我最近也是花了两天时间 给大家整理了这一 ...

  10. Java 线程池 +生产者消费者+MySQL读取300 万条数据

    1.1需求 数据库300 万条用户数据 ,遍历获取所有用户, 各种组合关联, 获取到一个新的json ,存到redis 上. 1.2 难点 数据库比较多, 不可能单线程查询所有的数据到内存. 1.3解 ...

最新文章

  1. 沉痛悼念游戏开发大神毛星云
  2. 为打击网络喷子 Instagram禁评论攻击
  3. php性能分析工具 - xhprof的安装使用
  4. web中session与序列化的问题
  5. MYSQL之SQL语句练习及思路_1
  6. 童装这门好生意,救得了森马吗?
  7. ?????nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for pr
  8. 给linux用户加入sudo权限
  9. 如何在一分钟内搞定面试官
  10. php火车订票系统设计论文,基于JSP的火车票订票系统 JSP146(毕业设计+论文)
  11. 腾讯云公布5G产品矩阵;IntelliJ IDEA 2020.2.1发布| 极客头条
  12. html 星空效果,html5 canvas炫酷旋转银河系星空背景特效
  13. 放生切勿盲目,放生动物要有选择
  14. mysql日期格式转换_MySQL日期格式转换
  15. 中科院-杨力祥视频教程 03课程
  16. PCIE知识点-002:PCIE协议中的几种bridge
  17. ArcGIS_一种简单的三维城市建模方法
  18. 精辟的人生格言,呵呵
  19. 这6款软件,让你的工作效率提升90%!
  20. 内外网同时使用之添加路由

热门文章

  1. sql-C#-类型对应
  2. Android游戏开发基础part3--Paint 画笔
  3. html5进度条插件 传递参数,Html5进度条插件(自写)
  4. java与mysql的交互_java与数据库交互常用到的一些方法
  5. 用sqlalchemy对mysql数据库增删改查demo
  6. PWA(Progressive Web App)入门系列:安装 Web 应用
  7. MySQL视图查询报错:Prepared statement needs to be re-prepared
  8. VC按最小化、关闭按钮、Esc都隐藏主窗口
  9. Linux 串口编程三 使用termios与API进行串口程序开发
  10. 通过类或ID记录上一个被选中的标签或者数字