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

h5网站建设文章wordpress移动端广告添加

h5网站建设文章,wordpress移动端广告添加,南阳企业网站建设,国内便宜云服务器在 《POSA2》 一书中#xff0c;关于这两个模式有两个很形象的比喻#xff1a;半同步/半异步#xff08;half-sync/half-async#xff09;#xff1a;许多餐厅使用 半同步/半异步 模式的变体。例如#xff0c;餐厅常常雇佣一个领班负责迎接顾客#xff0c;并在餐厅繁忙时…在 《POSA2》 一书中关于这两个模式有两个很形象的比喻半同步/半异步half-sync/half-async许多餐厅使用 半同步/半异步 模式的变体。例如餐厅常常雇佣一个领班负责迎接顾客并在餐厅繁忙时留意给顾客安排桌位为等待就餐的顾客按序排队是必要的。领班由所有顾客“共享”不能被任何特定顾客占用太多时间。当顾客在一张桌子入坐后有一个侍应生专门为这张桌子服务。领导者/追随者Leader/Followers在日常生活中领导者/追随者模式用于管理许多飞机场出租车候车台。在该用例中出租车扮演“线程”角色排在第一辆的出租车成为 领导者剩下的出租车成为 追随者。同样到达出租车候车台的乘客构成了必须被多路分解给出租车的事件一般以先进先出排序。一般来说如果任何出租车可以为任何顾客服务该场景就主要相当于 非绑定句柄/线程关联。然而如果仅仅是某些出租车可以为某些乘客服务该场景就相当于 绑定句柄/线程关联。在 《POSA2》 书中列举的例子都比较复杂并且书上没有列出完整的代码。但是这两个模式其实都可以在 《unix网络编程》一书中找到对应的完整的代码和相关的讨论。在 半同步/半异步 模式中需要由模式实现者显示构造一个队列以便同步层和异步层可以通信。在 《unix网络编程》 一书的 “27.12 TCP预先创建线程服务器程序主线程统一 accept” 的例子中 如果只是从处理 accept 这个事件上看可以认为这是一个使用了 半同步/半异步 模式的例子。但是从具体的业务处理即web_child的处理上仍然可以认为是一个ThreadPerConnection模型因为在 thread_main 中直接读取请求和发送响应。在这个例子中就有一个队列Java代码   [b]//这就是一个典型的循环队列的定义iget 是队列头iput 是队列尾[/b]  int clifd[MAXNCLI], iget, iput;     int main( int argc, char * argv[] )  {    ......    int listenfd  Tcp_listen( NULL, argv[ 1 ], addrlen );    ......      iget  iput  0;      for( int i  0; i  nthreads; i ) {      pthread_create( tptr[i].thread_tid, NULL, thread_main, (void*)i );      for( ; ; ) {      connfd  accept( listenfd, cliaddr,, clilen );      clifd[ iput ]  connfd;     [b]// 接受到的连接句柄放入队列[/b]      if( iput  MAXNCLI ) iput  0;      }  }    void * thread_main( void * arg )  {    for( ; ; ) {      while( iget  iput ) pthread_cond_wait( ...... );      connfd  clifd[ iget ];     [b]// 从队列中获得连接句柄[/b]      if( iget  MAXNCLI ) iget  0;      ......      web_child( connfd );      close( connfd );    }  }   而在 领导者/追随者 模式中同样是有一个队列的不过不需要模式实现者显示构造而是直接使用了操作系统底层的队列。在 《unix网络编程》 一书的 “27.11 TCP 预先创建服务器线程每个线程各自 accept ” 的例子中就是直接使用了操作系统中关于 accept 的队列。这个例子可以认为是 领导者/追随者 模式的一个例子。Java代码   int listenfd;    int main( int argc, char * argv[] )  {    ......    listenfd  Tcp_listen( NULL, argv[ 1 ], addrlen );    ......    for( int i  0; i  nthreads; i ){      pthread_create( tptr[i].thread_tid, NULL, thread_main, (void*)i );    }    ......  }    void * thread_main( void * arg )  {    for( ; ; ){      ......      [b]// 多个线程同时阻塞在这个 accept 调用上依靠操作系统的队列[/b]      connfd  accept( listenfd, cliaddr, clilen );      ......      web_child( connfd );      close( connfd );      ......    }  }   当然这里提到的操作系统的队列在 半同步/半异步 模式中虽然没有明显地指出来但只要是通过操作系统来做 accept 那么在 半同步/半异步 模式中仍然会隐式地用到。在 《POSA2》中作者的评价因为半同步/半异步设计在 web 服务器虚拟内存而不是操作系统内核内排队请求所以它更具伸缩性。看了上面的代码之后明白了为何 ACE 的作者在 《C网络编程2》 中特意引用了一首诗来“表达我们对 Richard 之持久影响的看法”不是在悲哀的冥河之滨也不是在遥远的 乐土般的平原的清辉中我们将在死者中间 遇见那些我们一直是其学生的人 ... ... 我们还将相遇分离再相遇 在死者们相遇的地方在活着的人的唇上 关于不同的客户-服务器编程模型在 《unix网络编程》的 “第27章 客户-服务器程序的其他设计方法”中讨论得很充分对每种模型的性能也做了很好的分析。
http://wiki.neutronadmin.com/news/463060/

相关文章:

  • 官网网站备案流程图十大手游平台app排行榜
  • 南山做网站多少钱公司网页设计说明300
  • 网站建设合同合同期限用户体验做的好的网站
  • 做网站的实践报告wordpress站长统计
  • 优惠券网站开发哪家好jsp怎么做购物网站
  • 网站建设搭建是什么意思推荐十个国外网站
  • 西安网站建设 白帽网络销售的产品是帮别人做网站
  • 做货运网站找哪家好东营兴通建设工程公司网站
  • 新闻发布网站建设实训网站空间ip需不需要备案
  • 河北建设网网站深圳快速网站制作哪家公司好
  • 营销型网站.济南快速网站制作公司
  • 湖州公司网站建设公司网页设计制作用什么软件
  • 做网站模板赚钱推广策略和促销策略的区别
  • 免费制作的网站建设网站所需的费用的估算
  • 网站模板 免费下载新型h5网站建设
  • 龙胜时代大厦 做网站网站功能设计
  • 东莞机械建站如何网站推广策划思路的内容
  • 涉县网站设计有自媒体谁还做网站
  • 网页设计与网站建设实训报告做影视网站规模不大
  • 网站运营与网络营销宣传片制作报价表
  • 惠州app网站建设排行榜鄞州做网站
  • 网站建设专用术语新手做网站的详细步骤
  • 三合一网站介绍男女做污的事情网站
  • 金融网站建设报价方案做的网站怎样适配手机屏幕
  • 网站建设 个人模板下载怎样制造网站图片教程
  • 手机网站的特效静安网站建设关键词优化seo
  • 网站主体备案号哈尔滨专业制作网站制作
  • 网站建设综合技术wordpress中文插件seo百度
  • 网站开发设计比较好的公司招生处网站建设方案
  • 康定网站建设公司wordpress 果酱