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

男人做想看的免费网站郑州地铁app

男人做想看的免费网站,郑州地铁app,自己做网站推广费用大,最好的做法文章目录 传统的阻塞式 I/OReactor 模式单 Reactor 单线程单Reactor多线程主从Reactor多线程 在目前的线程模型中一种是传统阻塞的I/O模型#xff0c;一种是Reactor线程模型。 传统的阻塞式 I/O 为了同时处理多个客户端的请求#xff0c;服务端为每一个连接都会分配一个新的… 文章目录 传统的阻塞式 I/OReactor 模式单 Reactor 单线程单Reactor多线程主从Reactor多线程 在目前的线程模型中一种是传统阻塞的I/O模型一种是Reactor线程模型。 传统的阻塞式 I/O 为了同时处理多个客户端的请求服务端为每一个连接都会分配一个新的线程处理。这个独立的线程完成数据的读写和业务处理。这虽然是“传统”的处理方式但是也是最经典的 IO 线程模型。示意图如下 该模型采用阻塞式 IO连接创建后如果当前线程暂时没有数据可读该线程会阻塞在 read 操作造成线程资源浪费。 当并发数很大就会创建大量的线程占用大量系统资源。 Reactor 模式 Reactor 模式针对传统 IO 的缺点提出了解决方案。 方案 1基于 I/O 复用模型。即多个连接共用一个阻塞对象当某个连接有新的数据准备好时操作系统通知应用程序线程从阻塞状态返回开始进行业务处理。 方案 2基于线程池复用线程资源不需要给每个连接创建一个线程。将连接完成后的业务处理任务分配给线程池中的线程进行处理。这样一个线程可以处理到多个客户端的业务。 总结一句话I/O 多路复用 线程池就是所谓的“Reactor 模式”的基本设计思想。其实我们前面 NIO 案例中的版本 1 的实现方式就有点这种味道只不过不是严格意义上的 Reactor 模式罢了。 目前常用的Netty、Redis、Memcached、Nignx都是基于Reactor模式实现的。 Reactor模型的核心 ReactorReactor 在一个单独的线程中运行负责监听和分发事件分发给适当的处理程序来对 I/O 事件做出反应。 Handlers完成实际 I/O 事件中数据的读写和要做的一系列业务处理。 Reactor模型根据Reactor的数量和处理资源线程池的数量不同又分为三种Reactor线程模型 单Reactor单线程单Reactor多线程主从Reactor多线程 单 Reactor 单线程 流程 Reactor 对象通过 Select 监控客户端请求事件收到事件后通过 Dispatch 进行分发。如果是建立连接请求事件则由 Acceptor 通过 Accept 处理连接请求然后创建一个 Handler 对象处理连接完成后的后续业务处理。如果不是建立连接事件则 Reactor 会分发调用连接对应的 Handler 来响应Handler 会完成 Read→业务处理→Send 的完整业务流程。 优点 模型简单没有多线程、进程通信、竞争的问题全部都在一个线程中完成。 缺点 性能问题只有一个线程无法完全发挥多核 CPU 的性能。Handler 在处理某个连接上的业务时整个进程无法处理其他连接事件很容易导致性能阻塞。可靠性问题线程意外终止或者进入死循环会导致整个系统通信模块不可用不能接收和处理外部消息造成节点故障。使用场景 客户端的数量有限业务处理非常快速。java原生nio就是这个模型。 单Reactor多线程 流程 Reactor 对象通过select 监控客户端请求事件, 收到事件后通过dispatch进行分发。如果建立连接请求, 则由Acceptor 通过accept 处理连接请求, 然后创建一个Handler对象处理完成连接后的各种事件。如果不是连接请求则由reactor分发调用连接对应的handler 来处理。handler 只负责响应事件不做具体的业务处理, 通过read 读取数据后会分发给后面的worker线程池的某个线程处理业务。worker 线程池会分配独立线程完成真正的业务并将结果返回给handler。handler收到响应后通过send 将结果返回给client。 优点 可以充分的利用多核cpu 的处理能力。 缺点 多线程数据共享和访问比较复杂 reactor 处理所有的事件的监听和响应在单线程运行 在高并发场景容易出现性能瓶颈.。 主从Reactor多线程 流程 Reactor主线程 MainReactor 对象通过select 监听连接事件, 收到事件后通过Acceptor 处理连接事件。当 Acceptor 处理连接事件后MainReactor 将连接分配给SubReactor 。subreactor 将连接加入到连接队列进行监听,并创建handler进行各种事件处理。当有新事件发生时 subreactor 就会调用对应的handler处理。handler 通过read 读取数据分发给后面的worker 线程处理。worker 线程池分配独立的worker 线程进行业务处理并返回结果。handler 收到响应的结果后再通过send 将结果返回给client。Reactor 主线程可以对应多个Reactor 子线程, 即MainRecator 可以关联多个SubReactor。 优点 父线程与子线程的数据交互简单职责明确父线程只需要接收新连接子线程完成后续的业务处理。父线程与子线程的数据交互简单Reactor 主线程只需要把新连接传给子线程子线程无需返回数据。 缺点 编程复杂度较高。 应用场景 这种模型在许多项目中广泛使用包括 Nginx 主从 Reactor 多进程模型Memcached 主从多线程Netty 主从多线程模型的支持。 引用 https://www.cnblogs.com/Maarten/p/15313801.html https://zhuanlan.zhihu.com/p/543661648
http://www.yutouwan.com/news/109451/

相关文章:

  • wordpress仿知乎南京百度网站快速优化
  • 孝感网站推广公众号文章制作
  • 大浪网站建设 优帮云腾讯云网站建设流程
  • 网站切图网站建设银行
  • 手机建站程序源码担路做网站
  • 公司要建设网站供电局招聘2023社招
  • 做网络传销网站犯法吗广州网站平台怎么做
  • 大兴建设网站网页游戏网站火
  • 武夷山市建设局网站vps 建网站 代理
  • wordpress照片页面阜阳seo
  • 网站SEO做点提升流量万象温州自媒体公司
  • 个人如何做购物网站 关于支付接口上海网站建设选缘魁 -企查
  • 办公用纸网站建设电子商务网站发展建设论文
  • 中国500强公司有哪些网络优化工程师是干什么的
  • 做免费网站推广开头语深圳网站建设 华信科
  • 做新网站怎样提交360自己做服务器的网站
  • 网站开发专业是干嘛的制作衣服的软件app
  • 西安医院网站建设桂林无人机航拍
  • 专业品牌网站建设价格品牌网站建设设计公司
  • 辽宁省建设厅网站升级何时结束辽宁建设执业继续教育协会网站
  • 网站建设的基本流程包括哪些南阳高质量建设大市网站
  • 苏州公司做变更网站怎么用ip地址做网站
  • 用易语言可以做网站吗怎样做百度网站推广
  • 昭通网站开发公司学校网站的建设方案
  • 周口微网站制作天津美容网站建设
  • 有没有做网站一次付费免费注册淘宝店铺
  • 成都百度推广的关键词深圳网站快速排名优化
  • 最好看的2018中文2019镇江网站建设方式优化
  • 手机网站网站开发流程图新风向网站建设
  • 一键生成logo免费网站为朋友做的网站