当前位置: 首页 > news >正文

珠海门户网站制作费用深圳app定制开发外包公司

珠海门户网站制作费用,深圳app定制开发外包公司,wordpress+html5特效,离我最近的电脑培训中心桌子上有面条-》吃货执行 桌子上没面条-》生产者制造执行 1、消费者等待 消费者先抢到CPU执行权#xff0c;发现桌子上没有面条#xff0c;于是变成等待wait状态#xff0c;并释放CPU执行权#xff0c;此时的CPU肯定会被厨师抢到#xff0c;初始开始做面条#xff0c;… 桌子上有面条-》吃货执行 桌子上没面条-》生产者制造执行 1、消费者等待 消费者先抢到CPU执行权发现桌子上没有面条于是变成等待wait状态并释放CPU执行权此时的CPU肯定会被厨师抢到初始开始做面条当厨师做完后会对吃货进行提示notify唤醒吃货来吃。 2、生产者等待 厨师先抢到CUP执行权但是桌子上有面条就不能再制作面条只能等待消费者吃完面条才能做消费者吃完后需要唤醒厨师继续做 代码逻辑 厨师 public class Cook extends Thread{Overridepublic void run() {//1循环//2同步代码块//3共享数据是否到末尾Yes//4共享数据是否到末尾Nowhile (true){synchronized (Desk.lock){if (Desk.count0){break;//10碗吃完}else {//厨师的核心逻辑//01判断桌子上是否有食物if (Desk.foodflag1){//02有食物就等待try {Desk.lock.wait();} catch (InterruptedException e) {throw new RuntimeException(e);}}else {//03没有System.out.println(Thread.currentThread().getName()制作食物);//04改变桌子状态Desk.foodflag1;//05唤醒消费者吃Desk.lock.notifyAll();}}}}} } 吃货 public class Customer extends Thread{Overridepublic void run() {while (true){synchronized (Desk.lock){if (Desk.count0){break;//10碗吃完}else {//吃货的核心逻辑/** 1.判断桌子上有无面条* 2.没有自己等待* 3.有吃完并唤醒厨师做面条count--* 4.修改桌子状态*/if (Desk.foodflag0){//1.判断桌子上有无面条try {Desk.lock.wait();//2.没有自己等待} catch (InterruptedException e) {throw new RuntimeException(e);}}else {//3.有吃完并唤醒厨师做面条count--Desk.count--;System.out.println(Thread.currentThread().getName()还能再吃Desk.count碗);Desk.lock.notifyAll();//4.修改桌子状态Desk.foodflag0;}}}}} } 桌子 public class Desk {//通过变量来控制 0:没食物 1有食物public static int foodflag0;//总个数最多做十碗public static int count10;//锁对象public static Object locknew Object(); }//测试类 public class Test {public static void main(String[] args) {Customer customer new Customer();Cook cook new Cook();customer.setName(吃货);cook.setName(厨师);customer.start();cook.start();} } 3、阻塞队列实现 接口无法new对象只能通过两个实现类第一个可以自定义队列长度。 注意生产者与消费者必须针对同一个阻塞队列阻塞队列可以创建在测试类中 厨师 public class Cook extends Thread{ArrayBlockingQueueString queue;//创建构造函数创建对象的时候进行赋值指定同一个阻塞队列public Cook(ArrayBlockingQueueString queue) {this.queue queue;}Overridepublic void run() {while (true){try {queue.put(面条);System.out.println(厨师做了一碗面条);} catch (InterruptedException e) {throw new RuntimeException(e);}}} }消费者 public class Customer extends Thread{ArrayBlockingQueueString queue;public Customer(ArrayBlockingQueueString queue) {this.queue queue;}Overridepublic void run() {while (true){try {String foodqueue.take();//tack底层也进行了加锁不需要我们自己定义System.out.println(获取食物food);} catch (InterruptedException e) {throw new RuntimeException(e);}}} }测试类 public class Test {public static void main(String[] args) {ArrayBlockingQueueString queuenew ArrayBlockingQueue(1);Customer customer new Customer(queue);Cook cook new Cook(queue);customer.setName(吃货);cook.setName(厨师);customer.start();cook.start();} }
http://www.hkea.cn/news/14467282/

相关文章:

  • 如何自学网站后台如何网页截图快捷键
  • 西宁网站建设开发德州做网站的公司有哪些
  • 济宁软件开发网站建设wordpress 作者 链接
  • 建设银行唐山分行网站怎么维护网站
  • 个人网页模板网站免费网站模板网
  • php网站开发步骤展示性公司网站html
  • 龙岩网站设计 信任推商吧做词金诚信矿业建设集团有限公司网站
  • 四川网站建设培训wordpress 对话
  • 建站系统低价建站新闻资讯如何网站建设公司
  • 网站前台后台齐装网装修公司
  • 网站设计客户需求网站建设方案应该怎么写
  • 上市公司中 哪家网站做的好wordpress 获取评论数
  • 建设项目招标在什么网站公示5在线做网站
  • 做网站用那种数据库建设公司网站需要准备什么科目
  • php简易购物网站开发个人中心html模板
  • 家政服务 技术支持 东莞网站建设开封景区网站建设方案
  • asp.net获取网站虚拟目录网站制作收费
  • 怎么做晒鱼的网站免费下载应用市场
  • 网站先做前端还是后端广州市旅游商务职业学校
  • wordpress安装服务器配置广州网站建设 seo
  • 如何做实体店的网站海北公司网站建设多少钱
  • 网站和微信 微网站解决方案做卖车的网站有哪些
  • 最低成本做企业网站合肥seo报价
  • 做网站做电脑版还是手机版好羽毛球赛事2022直播
  • 用dw做网站用什么主题比较好可以做网站二维码吗
  • 哪个建站比较好网站建设步骤流程详细介绍
  • 无锡做网站建设中山哪里网站建设
  • 西部数码做的网站打不开网站开发的现状研究
  • 展示网站源码下载厦门 网站建设 公司
  • 合肥做企业建网站那家好个人主页图片素材