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

网页设计素材制作搜索引擎优化的工作流程是什么?

网页设计素材制作,搜索引擎优化的工作流程是什么?,wordpress拓展业务,深圳网站设计1. 生产者与消费者 实现线程轮流交替执行的结果; 实现线程休眠和唤醒均要使用到锁对象; 修改标注位(foodFlag); 代码实现: public class demo11 {public static void main(String[] args) {/*** 需求&#…

1. 生产者与消费者

在这里插入图片描述

实现线程轮流交替执行的结果;
实现线程休眠和唤醒均要使用到锁对象;
修改标注位(foodFlag);
代码实现:

public class demo11 {public static void main(String[] args) {/*** 需求:完成消费者和生产者(等待唤醒机制)的代码*      实现线程轮流交替执行的结果*/Cooker cooker = new Cooker();Foodie foodie = new Foodie();cooker.setName("厨师");foodie.setName("吃货");cooker.start();foodie.start();}
}
class Cooker extends Thread {@Overridepublic void run() {/*** 1.循环* 2.同步代码快* 3.判断共享数据是否到了末尾(到了末尾)* 4.判断共享数据是否到了末尾(没到末尾,执行核心逻辑)*/while(true){synchronized (Desk.lock){if(Desk.count == 0){break;}else {// 判断桌子上是否有食物if(Desk.foodFlag == 1) {// 如果有,就等待try {Desk.lock.wait();} catch (InterruptedException e) {throw new RuntimeException(e);}}else {// 如果没有,就制作食物System.out.println("厨师在制作面条");// 修改桌子上的食物状态Desk.foodFlag = 1;// 叫醒等待的消费者开吃Desk.lock.notifyAll();}}}}}
}
class Foodie extends Thread {@Overridepublic void run() {/*** 1.循环* 2.同步代码快* 3.判断共享数据是否到了末尾(到了末尾)* 4.判断共享数据是否到了末尾(没到末尾,执行核心逻辑)*/while(true){synchronized (Desk.lock) {if(Desk.count == 0){break;}else {// 先判断桌子上面是否有面条if(Desk.foodFlag == 0) {// 如果没有,就等待// 不管是等待还是唤醒都是需要用锁对象进行处理的try {Desk.lock.wait(); // 让当前线程跟锁进行绑定} catch (InterruptedException e) {throw new RuntimeException(e);}}else {// 把吃的总数-1Desk.count --;// 如果有,就开吃System.out.println("吃货在吃面条,还能再吃 " + Desk.count + "碗!");// 吃完之后,就唤醒厨师继续做Desk.lock.notifyAll();// 最后要修改桌子的状态Desk.foodFlag = 0;}}}}}
}class Desk extends Thread {/*** 作用:控制生产者和消费者的执行*/// 是否有面条 0:没有面条 1:有面条public static int foodFlag = 0;// 总个数public static int count = 10;// 锁对象public static Object lock = new Object();
}

2. 使用阻塞队列实现

阻塞队列,当存入数据时,如果空间已满就阻塞;当取出数据时,如果没有数据在队列中就阻塞;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public class demo12 {public static void main(String[] args) {/*** 需求:利用阻塞队列完成生产者和消费者* 细节:*      生产者和消费者必须使用同一个阻塞队列*///1. 创建阻塞队列的对象ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(1);//2. 创建线程的对象,并把阻塞队列传递过去Cook12 cook12 = new Cook12(queue);Foodie12 foodie12 = new Foodie12(queue);cook12.start();foodie12.start();}
}
class Cook12 extends Thread {//只定义,不给值ArrayBlockingQueue<String> queue;//让构造方法获取public Cook12(ArrayBlockingQueue<String> queue) {this.queue = queue;}@Overridepublic void run() {while(true){//不断的把面条放到阻塞队列之中try {//ctrl+b进入源码//put底层已经实现了锁,所以无需再写锁queue.put("面条");System.out.println("厨师做了面条");} catch (InterruptedException e) {throw new RuntimeException(e);}}}
}class Foodie12 extends Thread {ArrayBlockingQueue<String> queue;//让构造方法获取public Foodie12(ArrayBlockingQueue<String> queue) {this.queue = queue;}@Overridepublic void run() {while(true){//不断的从阻塞队列中获取面条try {//ctrl+b进入源码//put底层已经实现了锁,所以无需再写锁String take = queue.take();System.out.println(take);} catch (InterruptedException e) {throw new RuntimeException(e);}}}
}

3. 多线程的6种状态

在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/356400/

相关文章:

  • 河南省鹤壁市住房和城乡建设局网站网站开发吗和APP软件一样吗
  • 河北省住房及城乡建设部网站设计制作费税率是多少
  • 建筑施工企业专职安全生产管理员什么是网站优化
  • 用网站的源代码怎么做网站阿里云网站建设合作
  • 济南网站建设兼职自己制作app的应用程序
  • 做网站简单吗免费用手机做网站
  • 心理咨询 网站模版网站没备案可以做淘宝客吗
  • 班玛网站建设网站制作首页
  • 建设银行网站维护谷歌优化seo
  • 建湖网站建设深圳小程序
  • 阳江做网站的公司wordpress 4.9.9
  • 如何用python 做网站dw软件怎么用
  • php电子商务网站模板哪个网站可以做医学基础知识题
  • 比较不同类型网站栏目设置区别小说网站建设后如何赚钱
  • 庆阳网站设计与建设网站开发公司内部数据字典
  • 设计好网站网站开发的前置审批是什么意思
  • 做电子芯片的有那些交易网站深圳企业网站seo
  • 北京通信管理局网站备案处天津制作网站公司
  • 深圳产品型网站建设青海营销网站建设多少钱
  • 哪个专业学习网站建设小区网站建设方案怎么写
  • 美妆网站模版四川建设厅网站 蒋
  • 云南昆明网站建设价格小型网站开发要多少钱
  • 网站面包屑导航怎么做的wordpress 工具插件下载
  • 有什么好的网站可以接单子做买完域名网站怎么设计
  • 平湖网站建设公司htmi 个人小网站 模板
  • 合肥 电子商务 网站建设为什么电子网站开发
  • 企业网站推广方案的策划炒域名 网站
  • 在线视频网站a一级爰a做免费网络推广公司利润如何
  • 自己建站网站哈尔滨flash网站网页设计
  • 北京高端网站建设专业做高校网站群管理系统