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

睢宁县凌城做网站的wordpress网页布局

睢宁县凌城做网站的,wordpress网页布局,网站建设与管理培训方案,广告公司和设计公司在Java平台,实现异步调用的角色有如下三个角色#xff1a;调用者、 提货单 、真实数据#xff0c;一个调用者在调用耗时操作,不能立即返回数据时,先返回一个提货单 .然后在过一断时间后凭提货单来获取真正的数据.去蛋糕店买蛋糕#xff0c;不需要等蛋糕做出来(假设现做要很长…在Java平台,实现异步调用的角色有如下三个角色调用者、 提货单 、真实数据一个调用者在调用耗时操作,不能立即返回数据时,先返回一个提货单 .然后在过一断时间后凭提货单来获取真正的数据.去蛋糕店买蛋糕不需要等蛋糕做出来(假设现做要很长时间)只需要领个提货单就可以了(去干别的 事情)等到蛋糕做好了再拿提货单取蛋糕就可以了。 [java] view plaincopy print? package com.somnus.async;    /**  *   * Description: 顾客  * author Somnus  * date 2016年3月9日 下午7:20:41  * version 1.0  */  public class Customer {        public static void main(String[] args) {          System.out.println(main BEGIN);          CakeShop host  new CakeShop();          Cake cake1  host.request(10, A);          Cake cake2  host.request(20, B);          Cake cake3  host.request(30, C);          System.out.println(main otherJob BEGIN);          try {              Thread.sleep(2000);          } catch (InterruptedException e) {          }            System.out.println(main otherJob END);          System.out.println(cake1    cake1.getCake());          System.out.println(cake2    cake2.getCake());          System.out.println(cake3    cake3.getCake());          System.out.println(main END);        }  }       这里的Customer类就相当于“顾客”CakeShop就相当于“蛋糕店”顾客向“蛋糕店”定蛋糕就相当于“发请求request”返回的数据cake是 DeliveryOrder的实例就相当于提货单而不是真正的“蛋糕”。在过一段时间后(sleep一段时间后)调用data1.getContent()也就是拿提货单获取 执行结果。     下面来看一下顾客定蛋糕后蛋糕店做了什么   [java] view plaincopy print? package com.somnus.async;    /**  * Description: TODO  * author Somnus  * date 2016年3月9日 下午7:21:32  * version 1.0  */  public class CakeShop {        public Data request(final int count, final char c) {            System.out.println(request(  count  ,   c  ) BEGIN);          // (1) 建立DeliveryOrder的实体          final DeliveryOrder order  new DeliveryOrder();                    // (2) 为了建立RealData的实体启动新的线程          new Thread() {              public void run() {                  //在匿名内部类中使用count、order、c。                  CakeBaker cakeBaker  new CakeBaker(count, c);                  order.setCakeBaker(cakeBaker);              }          }.start();          System.out.println(request(  count  ,   c  ) END);                    // (3) 取回FutureData实体作为传回值          return order;        }  }       CakeShop(蛋糕店)在接到请求后先生成了“提货单”DeliveryOrder的实例order然后命令“蛋糕师傅CakeBaker去做蛋糕CakeBaker相当于起 个线程去做蛋糕了。然后host返回给顾客的仅仅是“提货单”future而不是蛋糕。当蛋糕做好后蛋糕师傅才能给对应的“提货单”蛋糕也就 是order.setCakeBaker(cakeBaker);。   下面来看看蛋糕师傅是怎么做蛋糕的   建立一个字符串包含count个c字符为了表现出犯法需要花费一些时间使用了sleep。   [java] view plaincopy print? package com.somnus.async;    /**  * Description: 蛋糕师傅  * author Somnus  * date 2016年3月9日 下午7:22:52  * version 1.0  */  public class CakeBaker implements Cake {      private final String cake;        public CakeBaker(int count, char c) {          System.out.println(making cake(  count  ,   c  ) BEGIN);          char[] buffer  new char[count];          for (int i  0; i  count; i) {              buffer[i]  c;              try {                  Thread.sleep(3000);              } catch (InterruptedException e) {                  e.printStackTrace();              }          }          System.out.println(making cake(  count  ,   c  ) END);          this.cake  new String(buffer);      }        public String getCake() {          return cake;      }    }       现在来看看“提货单”order是怎么与蛋糕cake对应的: [java] view plaincopy print? package com.somnus.async;    /**  * Description: 提货单  * author Somnus  * date 2016年3月9日 下午7:25:06  * version 1.0  */  public class DeliveryOrder implements Cake {      private CakeBaker cakeBaker  null;        private boolean ready  false;        public synchronized void setCakeBaker(CakeBaker cakeBaker) {          if (ready) {              return; // 防止setCakeBaker被调用两次以上。          }          this.cakeBaker  cakeBaker;          this.ready  true;          notifyAll();      }        public synchronized String getCake() {          while (!ready) {              try {                  wait();              } catch (InterruptedException e) {                  e.printStackTrace();              }          }          return cakeBaker.getCake();      }    }     顾客做完自己的事情后会拿着自己的“提货单”来取蛋糕 [html] view plaincopy print? System.out.println(cake1    cake1.getCake());     这时候如果蛋糕没做好就只好等了 [html] view plaincopy print? while (!ready) {      try {          wait();      } catch (InterruptedException e) {          e.printStackTrace();      }  }     //等做好后才能取到 [html] view plaincopy print? return cakeBaker.getCake();     程序分析   对于每个请求host都会生成一个线程这个线程负责生成顾客需要的“蛋糕”。在等待一段时间以后如果蛋糕还没有做好顾客还必须等待。 直到“蛋糕被做好”也就是   order.setCakeBaker(cakeBaker);执行以后顾客才能拿走蛋糕。   每个线程只是专门负责制作特定顾客所需要的“蛋糕”。也就是顾客A对应着蛋糕师傅A顾客B对应着蛋糕师傅B。即使顾客B的蛋糕被先做好了 顾客A也只能等待蛋糕师傅A把蛋糕做好。换句话说顾客之间没有竞争关系。     类DeliveryOrder的两个方法被设置为synchronized实际上蛋糕师傅A与顾客A之间的互斥关系也就是顾客A必须等待蛋糕师傅A把蛋糕做好后 才能拿走而与蛋糕师傅B是否做好了蛋糕没有关系。转载于:https://www.cnblogs.com/tuojunjie/p/6836677.html
http://wiki.neutronadmin.com/news/318665/

相关文章:

  • 企业网站建设账务处理怎样给网站做外链
  • 网站如何换域名网站制作前景怎么样
  • 东莞玩具加工东莞网站建设广州市住房和建设水务局网站
  • 资源网站源码苏州网站建设要多少钱
  • 涂料网站设计公司网页制作模板在哪买
  • 点个赞科技 网站制作做淘宝客网站哪个好
  • 网站制作公司南宁做 淘宝客最大的网站是叫什么
  • 新站seo优化快速上排名凡科网邮箱登陆
  • 网站服务器配置参考指南多用户网站建设
  • 做手机网站做网站需求 后期方便优化
  • 网站后台拿shell安徽省建筑业信息一体化平台网
  • 做视频添加字幕的网站家居企业网站建设精英
  • 海西州电子商务网站建设公司学校网站的建设与使用情况
  • 免费自助设计网站discuz企业网站
  • 快速网站备案wordpress时区设置
  • 网站制作多少钱400怎么在百度免费推广
  • 网站自助建站软件唯品会网站开发招聘
  • 手机网站的域名如何做好网站建设的关键
  • 塘沽建设网站农业网站 源码
  • 做网站用com还是cn好校园网站建设与管理
  • 负责公司网站的更新和维护珠海建设网站官网
  • 网站建设平台哪个公司好服装怎么做网站推广
  • 域名服务器都有了怎么做网站数字货币网站开发需求
  • 石家庄做网站最好的公司哪家好中国万网陈峰欣
  • 贵阳网站托管网站优化排名网站
  • 上海美容网站建设上海专业制作网站
  • 个人 可以做社交网站中国水土保持生态环境建设网站
  • 网站设计尺寸大小外贸网站建设需要什么
  • 如何让百度收录自己的网站wordpress资源下载站
  • 如何建设一个查询系统网站百度网盘下载安装