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

电子商务网站推广策划方案云主机 怎么做网站

电子商务网站推广策划方案,云主机 怎么做网站,网站建设费可以走办公费吗,常州网站排名优化Java I/O模型发展以及Netty网络模型的设计思想 I/O模型Java BIOJava NIOJava AIO NIO Reactor网络模型单Reactor单线程模型单Reactor多线程模型主从Reactor多线程模型 Netty通信框架 前言#xff1a; BIO、NIO的代码实践参考#xff1a;Java分别用BIO、NIO实现简单的客户端服… Java I/O模型发展以及Netty网络模型的设计思想 I/O模型Java BIOJava NIOJava AIO NIO Reactor网络模型单Reactor单线程模型单Reactor多线程模型主从Reactor多线程模型 Netty通信框架 前言 BIO、NIO的代码实践参考Java分别用BIO、NIO实现简单的客户端服务器通信 I/O模型 I/OI和O指input和output输入输出通俗理解用怎么样的通道进行数据的发送和接收很大程度上决定程序通信的性能 Java共支持三种I/O模型BIONIOAIO BIO同步阻塞一个线程处理一个连接。只要有一个客户端连接到服务器就需要开一个线程。同一个线程的连接和读写操作会阻塞NIO同步非阻塞一个线程处理多个连接。实现方式是客户端的请求事件都会注册到多路复用器selector上面多路复用器进行轮询处理AIO异步非阻塞引入异步通道概念采用Proactor模式有效请求事件才会启动线程特点是先由操作系统完成后才通知服务器程序启动线程适用于连接数多的长连接请求 Java BIO 流程 服务器启动一个ServerSocket客户端启动socket与服务器通信。服务器需要对每个客户端建立一个线程客户端发出请求后先咨询服务器有无线程响应没有则等待有响应客户端会等待请求结束后再继续执行 Java NIO 主要概念 三大核心Channel通道Buffer缓冲区Selector多路复用器非阻塞模式一个线程从通道请求或读取数据时它仅能得到能用的数据无可用数据时不会阻塞线程可以继续做其他事情非阻塞写也是一样不需要等待写入通俗理解NIO可以做到用一个线程处理多个操作假设有10000个请求实际可能只需要开50-100个线程不像BIO一样必须分配10000个线程HTTP2.0也使用了多路复用技术做到了一个连接并发处理多个请求数量比HTTP1.0大了好几个数量级 Channel通道Buffer缓冲区Selector多路复用器的关系 每个Channel对应一个BufferSelector对应一个线程一个线程对应多个ChannelSelector根据不用事件在各个通道上切换Buffer是一个内存块底层是数组读写切换需要用flip()Channel是双向的可以返回底层操作系统的情况 Channel BIO的stream是单向的Channel是双向的可以读也可以写常见的Channel还有FileChannelDatagramChannelSocketChannelServerSocketChannelFileChannel文件读写DatagramChannelUDP读写SocketChannelServerSocketChannelTCP读写 NIO编程流程 服务器启动一个ServerSocket得到一个ServerSocketChannel创建一个服务器的SelectorServerSocketChannel注册到Selector上标记为连接事件Selector监听该事件开始循环Selector得到有事件的SelectorKey集合并进行轮询使用SelectorKey上绑定的Channel进行业务处理连接读写 Java AIO NIO Reactor网络模型 单Reactor单线程模型 方案 Selector是网络编程API可以实现应用程序对多路链接请求的处理服务器用一个多路复用器即一个Reactor监听所有的客户端的请求连接、读、写事件每次处理完连接会创建一个Handler处理连接后的读写业务处理Handler负责完成整个读、业务处理、写业务流程 优缺点 代码简单只有一个线程清晰明了客户端连接较多时无法支撑一般的NIO实现样例就是用的这种模型Java分别用BIO、NIO实现简单的客户端服务器通信 单Reactor多线程模型 方案 Selector是网络编程API可以实现应用程序对多路链接请求的处理服务器用一个多路复用器即一个Reactor监听所有的客户端的请求连接、读、写事件每次处理完连接会创建一个Handler处理连接后的读写业务处理Handler只响应事件读取数据不做业务处理分发给worker线程池里面的线程处理业务worker线程池分配一个线程负责完成业务处理、回传等业务流程 优缺点 可以充分利用多核cpu处理能力多线程数据访问和共享比较复杂Reactor同样是单线程相比于单Reactor单线程模型性能好一些但是高并发场景同样会遇到性能瓶颈 主从Reactor多线程模型 方案 Reactor主线程和Reactor从线程主线程负责处理连接事件从线程负责处理读写事件主Reactor通过Acceptor处理完连接事件后主Reactor把连接分给从Reactor处理从Reactor将连接的channel注册到Selector中进行监听并创建各种Handler进行处理Handler只响应事件读取数据不做业务处理分发给worker线程池里面的线程处理业务worker线程池分配一个线程负责完成业务处理、回传等业务流程 优缺点 主线程和从线程数据交互简单职责明确能处理较大并发量编程复杂度较高 Netty通信框架 主要基于主从Reactor多线程模型做了一定的改进增加了Reactor线程池可以多个主线程和多个从线程并发处理 Netty模型图简单版 Netty模型图复杂版 工作原理 netty抽象出两种线程池BossGroupWorkGroup分别做连接事件多路复用和网络读写事件多路复用BossGroupWorkGroup都是NioEventLoopGroupNioEventLoopGroup相当于事件循环组组中有多个NioEventLoop事件循环NioEventLoop表示一个不断循环的执行处理任务的线程每个NioEventLoop都有一个多路复用器Selector每个BossGroup中的NioEventLoop执行步骤是 a. 轮询accept事件 b. 处理accept事件与客户端建立连接生成channel并将其注册到某个WorkGroup中的NioEventLoop上的Selector c. 处理任务队列的任务即runAllTask每个WorkGroup中的NioEventLoop执行步骤是 a. 轮询read,write事件 b. 处理read,write事件主要是处理channel c. 处理任务队列的任务即runAllTask每个WorkGroup中的NioEventLoop处理业务时会使用pipeline管道pipeline包含了channelpipeline维护了很多handler处理器
http://www.tj-hxxt.cn/news/136460.html

相关文章:

  • 白山住房与城乡建设局网站学广告设计需要什么学历
  • 外包做一个网站一般费用wordpress邀请码吧
  • 旅游景点网站设计论文贵州网站开发哪家便宜
  • 网站图片如何居中做360手机网站优化快
  • 手机网站建设价格是多少做网站需要模板吗
  • 一个网站需要多少空间付费阅读wordpress主题
  • 贵港网站建设培训网站建设合同注意点
  • 网站网页区别国外免费个人网站空间
  • 做网站的价格是多少东营建设网站公司电话
  • 网站系统怎么用免费的个人简历模板 医学生
  • 昆明seo网站建设购物网站的搜索框用代码怎么做
  • 智能网站建设软件有哪些方面海口网红图书馆
  • 做网站练手项目网站建设流程是这样的
  • 北京快三下载官方网站推盟
  • 网站开发的职业分析wordpress获取文章一个tag标签
  • 龙华做网站哪家好学ui去哪个机构比较好
  • 拍拍网站源码可以做业务推广的网站有哪些内容
  • 大同市网站建设网站位置导航
  • 网站建设贰金手指下拉贰拾专业的佛山网站设计
  • 茶叶网站建设哪家网络会议
  • 旅游网站功能模块湛江市建设交易中心网站
  • 做网站后台用什么写深圳东门步行街
  • 怎么申请网站详细步骤让你有做黑客感觉的网站
  • 做淘宝网站seo软件推广
  • 站长源码论坛阿里云 安装 wordpress
  • 武进网站建设多少钱网页制作工具有什么
  • 宁波网站建设zj95智通人才招聘网最新招聘
  • 建设一个营销网站有哪些步骤wordpress能够分权限查看模块吗
  • 长春网站网站建设wordpress生成默认密码
  • 培训机构网站开发网站开发肇庆培训