多线程小猪佩奇吃煎饼

猪妈妈为小猪佩琪和弟弟乔治准备午餐。猪妈妈将煎好的煎饼放在一个盘子里,盘子里面只能放一块煎饼。猪妈妈煎好一块煎饼需要3s,佩琪吃掉一块煎饼需要5s,乔治吃掉一块煎饼需要4s。假设猪妈妈总共煎了n块煎饼。请你编程模拟它们这个过程。1、盘子里面只能放一块煎饼。如果盘子里还有煎饼,则煎饼不能放进去。2、佩琪和乔治只能在盘子中有煎饼时才能取得煎饼,同时必须吃完了手上的煎饼才能去取盘子里的煎饼。3、最后统计一下佩琪和乔治各吃了几块煎饼。


这个小猪佩奇和乔治是个猪!!!

package main;
public class Main {static int Count = 20;static int n = 1;public static void main(String[] args) {Food food = new Food();PigMother pm = new PigMother(food);PeppaPig pp = new PeppaPig(food);George george = new George(food);Thread p = new Thread(pm);Thread pe = new Thread(pp, "佩琪");Thread g = new Thread(george, "乔治");p.start();pe.start();g.start();}
}
class Food {private String name;private boolean flog;public String getName() {return name;}public void setName(String name) {this.name = name;}public Food() {super();this.flog = false;}public Food(String name) {this.name = name;this.flog = false;}public synchronized void set(String name) {if (flog) {try {super.wait();} catch (InterruptedException e) {e.printStackTrace();}}System.out.println("猪妈妈正在煎第" + (Main.n) + "块煎饼");this.setName(name);flog = true;super.notifyAll();}public synchronized void get() {if (!flog) {try {super.wait();} catch (InterruptedException e) {e.printStackTrace();}}System.out.println("第" + (Main.n++) + "块" + toString() + "正在被" + Thread.currentThread().getName() + "吃");flog = false;super.notifyAll();}public String toString() {return this.name;}
}
class PigMother implements Runnable {private Food food;public PigMother() {super();}public PigMother(Food food) {this.food = food;}public Food getFood() {return food;}public void setFood(Food food) {this.food = food;}@Overridepublic void run() {while (Main.Count > 0) {makeBattercake();try {Thread.sleep(3000);} catch (Exception e) {e.printStackTrace();}}}private synchronized void makeBattercake() {if (Main.Count > 0) {food.set("猪煎饼");Main.Count--;}}
}
class PeppaPig implements Runnable {private Food food;private int count;public PeppaPig() {super();}public PeppaPig(Food food) {this.food = food;this.count = 0;}@Overridepublic void run() {while (Main.Count > 0) {food.get();count++;try {Thread.sleep(5000);} catch (Exception e) {e.printStackTrace();}}System.out.println("佩琪一共吃了" + count + "块煎饼");}
}
class George implements Runnable {private Food food;private int count;public George() {super();}public George(Food food) {this.food = food;this.count = 0;}@Overridepublic void run() {while (Main.Count > 0) {food.get();count++;try {Thread.sleep(4000);} catch (Exception e) {e.printStackTrace();}}System.out.println("乔治一共吃了" + count + "块煎饼");}
}

多线程小猪佩奇吃煎饼相关推荐

  1. 挑战52天背完小猪佩奇(第02天)

    本文说明 本文内容来源于对B站UP 脑洞部长 的系列视频挑战52天背完小猪佩奇 的视频内容总结,方便复习.强烈建议大家去关注一波UP,配合UP视频学习. 该系列侧重于生活常用语,适合语法基础较差者学习 ...

  2. 《小猪佩奇拜年歌》在QQ音乐和网易云音乐上线

    2021牛年春节马上就要到来,为了陪伴大家共度这个团圆美好的节日,孩之宝全球娱乐工作室eOne旗下动画品牌"小猪佩奇"正式推出<小猪佩奇拜年歌>.目前,这首极具中国年味 ...

  3. 「小猪佩奇」:成功儿童IP背后的商业逻辑和方法论

    作者:周佳晓 全文共 5343 字 6 图,阅读需要 12 分钟 一个成功的儿童IP需要来自儿童端和家长端的双向驱动力,缺一不可. 对于儿童端,业界已经有充分的实践和探索,并摸索出成熟套路:然而对于家 ...

  4. 挑战52天背完小猪佩奇(第01天)

    本文说明 本文内容来源于对B站UP 脑洞部长 的系列视频挑战52天背完小猪佩奇 的视频内容总结,方便复习.强烈建议大家去关注一波UP,配合UP视频学习. 该系列侧重于生活常用语,适合语法基础较差者学习 ...

  5. AI洞观 | 周鸿祎秀小猪佩奇手表背后 看看360的AI战略

    关注网易智能,聚焦AI大事件,读懂下一个大时代! 出品 | 网易智能(公众号 smartman163) 栏目 | AI洞观第8期 作者 | 丁广胜 小猪佩奇儿童手表,成为老周最近逢人必带的新货. 以免 ...

  6. 挑战52天背完小猪佩奇(第04天)

    挑战52天背完小猪佩奇(第04天) 本文说明 本文内容来源于对B站UP 脑洞部长 的系列视频挑战52天背完小猪佩奇 的视频内容总结,方便复习.强烈建议大家去关注一波UP,配合UP视频学习. 该系列侧重 ...

  7. 小猪佩奇html源码,快手抖音小猪佩奇和真人一起的视频制作软件和教程

    小猪佩奇和真人互动的视频也是今年5月份刚开始的,这种特效视频制作简单但是效果很好,基本上发一个热一个,所以很多学员要求学习.制作过程用一部手机就可以完成,当然条件好的用电脑也可以. 我们先看一下展示视 ...

  8. 挑战52天背完小猪佩奇(第03天)

    挑战52天背完小猪佩奇(第03天) 本文说明 本文内容来源于对B站UP 脑洞部长 的系列视频挑战52天背完小猪佩奇 的视频内容总结,方便复习.强烈建议大家去关注一波UP,配合UP视频学习. 该系列侧重 ...

  9. python turtle画熊-Python使用turtle库绘制小猪佩奇(实例代码)

    turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制.turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言. turtle库绘制图形有一个基本框架:一个小海龟 ...

最新文章

  1. python ---------函数
  2. 注解方式实现aop-快速入门
  3. for遍历list scala_面试官问:List 如何一边遍历,一边删除?
  4. python是属于it界吗_转行IT行业,Python是不是一个好的选择?
  5. 【收藏】一千行 MySQL 学习笔记
  6. Virtual Routing and Forwarding
  7. 期货交易的异常交易认定标准
  8. SOEM主站开发笔记-- 点亮第一个LED----SOEM 的simpletest.c代码的解析以及改动
  9. 计算机主板电源管理线路图,笔记本电源维修方法详解【图文教程】
  10. vue日历排班组件_VUE实现日历组件功能
  11. 网络共享中心的计算机名,电脑提示“请启用网络和共享中心中的网络发现”解决方法...
  12. JAVA课程设计坦克大战源码
  13. 服务器开机显示f1 f2,开机按f1的解决方法|开机按f2的解决方法|电脑开机按f1怎么解决...
  14. 大牛养成指南(1):吃的草够多,你也能成为大牛
  15. Win10修改MySQL数据库密码示例
  16. maven安装异常 Failure to find xxx in 中央仓库
  17. oracle单用户,如何将系统引导至单用户状态(运行级别 S)
  18. 还记得小时候玩的泡泡龙吗?用CocosCreator实现它!
  19. 最细的 PyCharm 安装+详细使用指南
  20. 虞凌云:搭载人工智能的快车 智慧医疗发展意义深远

热门文章

  1. android设备直连数据库
  2. 俄罗斯药政机构药品信息数据查询
  3. Java高手太多,惭愧
  4. SPSS和EXCEL的百分等级
  5. 2022-2028全球及中国先进核磁共振成像可视化系统行业研究及十四五规划分析报告
  6. 2021/10/7-Shell脚本与工具
  7. 微信小程序 开发 总结
  8. vue+echarts 地图携带参数下钻【demo二】
  9. Python学习——UnitTest自动化测试框架
  10. 互联网早报:蚂蚁链正式发起“宝藏计划”,开放可信数字技术守护传统文化