Netty学习(一)——BIO/伪异步IO/NIO/AIO四种IO模型的演变
创始人
2024-02-08 15:04:56
0

IO模型历经了从BIO到伪异步IO,到NIO,再到AIO这四种IO模型的演变。其中伪异步IO是非官方说法。

一、BIO

BIO即Block Input Output,同步阻塞IO
BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端连接请求后,为每个客户端创建一个新的线程进行链路处理,处理完成之后,通过输出流返回应答给客户端,线程销毁。
该模型最大的问题就是缺乏弹性伸缩能力,当客户端并发访问量增加后,服务端的线程个数和客户端并发访问数呈1:1的正比关系。因为线程是JVM非常宝贵的系统资源,当线程数膨胀之后,系统的性能将急剧下降,随着并发访问量的继续增大,系统会发生线程堆栈溢出、创建新线程失败等问题,并最终导致进程宕机或僵死,不能对外提供服务。因此很显然,这种模型无法满足高性能、高并发接入的场景。

二、伪异步IO

为了改进一线程一连接的这种模型,演进出了一种通过线程池或消息队列实现一个或多个线程处理N个客户端的模型。由于这种模型的底层通信机制依然使用同步阻塞IO,所以被称为“伪异步”。该模型服务端的线程池最大线程数N,与客户端个数M,形成N:M的比例关系,其中M可以远远大于N。通过线程池可以灵活地调配线程资源,设置线程的最大值,防止由于海量并发接入而导致线程耗尽。
伪异步IO实际上仅仅是对BIO线程模型的一个简单优化,无法从根本上解决同步IO导致的通信线程阻塞问题。

三、NIO

官方将NIO称之为 New I/O,因为它相对于之前的I/O类库是新增的。
但是更多的人喜欢称之为Non-block I/O,非阻塞IO,因为非阻塞I/O更能体现NIO的特点。

【NIO三大组件】

  1. 缓冲区 Buffer:在NIO库中,所有数据都是用缓冲区处理的。读数据时,直接读到缓冲区中;写数据时,写入到缓冲区中。
  2. 通道 Channel:通道与流的不同之处在于通道是双向的,流只是在一个方向上移动,而通道可以用于读、写或者二者同时进行。即Channel是全双工的。
  3. 多路复用选择器 Selector:多路复用选择器是NIO实现非阻塞I/O的关键。多路复用的核心就是Selector不断轮询注册在其上的Channel,如果某个Channel上面发生读或写事件,这个Channel就处于就绪状态,会被Selector轮询出来,然后通过SelectionKey可以获取就绪Channel的集合,进行后续的I/O操作。

由于JDK的Selector在Linux等主流操作系统上通过epoll实现,它没有连接句柄数的限制,这意味着一个Selector线程可以同时处理成千上万个客户端连接,而且性能不会随着客户端的增加而线性下降。因此,该模型非常适合做高性能、高负载的网络服务器。

四、AIO

AIO即Asynchronous Input Output,异步IO
JDK7升级了NIO类库,升级后的NIO类库被称为NIO2.0,NIO2.0的异步套接字通道是真正的异步非阻塞I/O,对应于UNIX网络编程中的事件驱动I/O,即AIO。该模型不需要通过多路复用选择器Selector对注册的通道进行轮询操作即可实现异步读写,从而简化了NIO的编程模型。

相关内容

热门资讯

铜陵有色:预计铜需求具有长期增... 格隆汇5月13日|铜陵有色昨日在业绩说明会上表示,公司预计行业未来发展趋势如下:(一)预计铜需求具有...
携手打造人类命运共同体的“中拉...   在中拉论坛正式启动10周年之际,中央广播电视总台CGTN携手秘鲁圣马丁·德波雷斯大学、拉美中国政...
凯发电气等成立新公司 含物联网... 人民财讯5月13日电,企查查APP显示,近日,天津凯育智航科技有限公司成立,法定代表人为王传启,注册...
中国选手郑钦文晋级WTA100... 中新社北京5月13日电 在当地时间12日举行的女子网球选手协会(WTA)1000罗马站单打第四轮比拼...
小米SU7 Ultra车主集体... 转自:今晚报       近日,小米SU7 Ultra车主集体要求退车一事在社交平台引发广泛热议。部...
5月13日兰格唐山钢市午间播报 5月13日兰格唐山钢市午间播报   5月13日唐山迁安普...
竞逐低空!这款“四川造”通用飞... 四川在线记者 高杲乘坐小飞机,从另一种视角领略壮美山河,是未来旅游的新玩法。5月13日,四川省低空经...
速看!广东2025高考安排出炉... 转自:江门发布近日省教育考试院发布了《关于做好广东省2025年普通高校招生工作的通知》对今年高校招生...
中国资产价格上扬 市场信心大提... 转自:经济日报5月12日,中国资产价格迎来强劲上扬,A股与港股市场均呈现火热景象,投资者情绪高涨,市...
昌飞举办“中国梦 航空梦”航空... 本报讯 4月30日,中国航空工业集团昌飞走进景德镇市湘湖中心小学举办“中国梦 航空梦”航空科普进校园...
命运与共好伙伴 | 汉语教育之... 来源:人民网-国际频道 柬埔寨王家研究院孔子学院成立于2009年12月22日,是柬埔寨最早成立的孔子...
“云冈六美人”闭门谢客 云... 中新社山西大同5月13日电 (记者 胡健)记者13日从云冈研究院获悉,从即日起至今年9月30日,云冈...
300ETF(159300)涨... 5月13日,截止午间收盘,300ETF(159300)涨0.00%,报3.993元,成交额4424....
悬赏奖励升级!出逃40天!“嫌... 来源:新闻晨报 5月11日,扬州市茱萸湾风景区管理处发布“悬赏公告”,称园内的一只卡皮巴拉豆包出逃4...
印度拟采取反制举措 对美国部分...   印度向世界贸易组织(WTO)表示,印度拟对美国生产并出口至印度的部分产品征收关税,以对抗美国对印...
恒大,再起波澜!申请撤销子公司... 清盘中的中国恒大动作不断。5月12日晚间,中国恒大发布有关其附属公司CEG Holdings(简称“...
科创机械ETF(588850)... 5月13日,截止午间收盘,科创机械ETF(588850)跌1.03%,报1.055元,成交额327....
中航发布翼龙-2系列长航时无人... 四川在线记者 李欣忆5月13日,四川省低空经济产业链协同发展暨产品发布会现场,中航无人机公司发布翼龙...
软件50ETF(159590)... 5月13日,截止午间收盘,软件50ETF(159590)跌0.76%,报1.049元,成交额1332...
午评:指数早盘高开低走 军工板... .ct_hqimg {margin: 10px 0;} .hqimg_wrapper {text-a...