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

视频网站logo怎么做的免费模板网站知乎

视频网站logo怎么做的,免费模板网站知乎,成都注册网站公司,小程序页面设计图文章目录 概述Channel & BufferSelector服务器设计历史演化多线程版设计线程池版设计selector 版设计 概述 NIO的意思是 non-blocking io 非阻塞 IO 。NIO中存在3大组件:Channel 、 Buffer 、Selector Channel & Buffer channel (中文 管道的…

文章目录

  • 概述
  • Channel & Buffer
  • Selector
    • 服务器设计历史演化
      • 多线程版设计
      • 线程池版设计
      • selector 版设计

概述

NIO的意思是 non-blocking io 非阻塞 IO 。NIO中存在3大组件:Channel 、 Buffer 、Selector

Channel & Buffer

channel (中文 管道的意思)有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer(中文 缓冲区的意思),也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入,要么是输出,channel 比 stream 更为底层。Channel和Buffer是多对多的关系,它们相互协作共同完成数据的传输和处理任务

在这里插入图片描述

常见的 Channel 有

  • FileChannel (文件管道,不支持非阻塞)
  • DatagramChannel
  • SocketChannel (网络管道,支持非阻塞)
  • ServerSocketChannel (服务端网络管道,支持非阻塞)

buffer 则用来缓冲读写数据,常见的 buffer 有

  • ByteBuffer
    • MappedByteBuffer
    • DirectByteBuffer
    • HeapByteBuffer
  • ShortBuffer
  • IntBuffer
  • LongBuffer
  • FloatBuffer
  • DoubleBuffer
  • CharBuffer

Selector

selector 中文就是选择器的意思,单从字面意思不好理解,需要结合服务器的设计演化来理解它的用途。服务器的设计演化从多线程->线程池selector

服务器设计历史演化

多线程版设计

在这里插入图片描述
在多线程版本下,一个请求到达服务端,服务端开辟一个线程去处理该请求,这种做法在请求量不多的情况下可以接受,但是一旦请求量多了那么问题随之而来,内存占用高、线程上下文切换成本高这些问题会让你的服务器最终崩溃。

线程池版设计

在这里插入图片描述
在线程池版本下,服务器会初始化一个线程池,池内会有一定量的线程,当请求达到服务器时会使用线程池内的线程进行处理,处理完归还给线程池。这种模式下虽然避免了服务器不停地创建线程、销毁线程,但是仍然存在问题:线程仅能处理一个 socket 连接,当处理某个socket时线程就会阻塞等待处理完成才能继续处理其他任务。

selector 版设计

在这里插入图片描述

在selector 模式下,当一个请求到达服务器时,会先和channel进行关联,由selector来管理这些channel什么时候提交给线程处理。这些 channel 工作在非阻塞模式下,有了selector就不会让线程吊死在一个 channel 上。适合连接数特别多,但流量低的场景。调用 selector 的 select() 会阻塞直到 channel 发生了读写就绪事件,这些事件发生,select 方法就会返回这些事件交给 thread 来处理。

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

相关文章:

  • 大连做网站哪家好建设营销型网站不足之处
  • html5韩国网站模板移动开发技术
  • 建网站权威机构nginx建设网站教程
  • 做网站的咋挣钱佘山做网站公司
  • 班级设计网站建设无锡网站建设策划方案
  • 国外网站国内做好还是国外做孝感网站开发找优搏
  • 免费做网站收录的网站建设账务处理
  • 网站建设 400电话 广告语分类达人介绍
  • 晋中住房保障和城乡建设局网站wordpress数据维护
  • 网站建设宁夏凤凰云平面设计培训班要学多久
  • 360怎么免费建网站外国风格网站建设用途
  • 做网站如何变现导视设计分析
  • 目前流行的网站分辨率做多大网页制作实训报告总结
  • 怎样找回网站域名密码wordpress the7 慢
  • 泰安可以做网站的公司自己做网站怎么做的
  • 做网站系统的销售怎么做宁波seo网络推广定制多少钱
  • python做网站的多吗如何创做网站
  • 如何做企业网站做微信广告网站有哪些内容
  • 网站开发支付宝电脑网页游戏平台
  • 盐城网站开发代理网站到处仿
  • 无锡制作网站公司湖南网站设计亮点
  • 做一个配送网站wordpress文章两端对齐
  • 河南县wap网站建设公司企业网站建设一站式服务
  • 网站建设价格差别个人做理财网站
  • 做网站链接的页面怎么做wordpress需要备案
  • 社保个人网站入口网名生成器
  • 青岛做网站需要多少钱oto网站开发
  • 四川大良网站建设免费做店招哪个网站好
  • 汉中网站建设价格做钢材都有什么网站
  • 有哪些做海岛的网站门户网站建设要求