IO线程模型之NIO(Reactor)线程模型(二)

一、前言

​ io操作在程序中普遍存在,有三大io线程模型分别为BIO、NIO、AIO,本文将介绍其中的NIO线程模型.

二、NIO(Reactor)线程模型

  • NIO线程模型是什么?

    线程发起 (网络)IO 请求,通过Selector(多路复用选择器)进行注册监听,监听为可读才去通知业务线程,在没有收到真正的处理时业务线程都是自由的,所以NIO称为同步非阻塞式IO.

  • NIO(Reactor)线程模型图解

    avatar

    图解说明:

    ​ 每个客户端会发起一个请求到服务端,通过Selector(多路复用选择器)进行注册并对其进行事件监听,当Selecotr监听到读取事件会生成一个handle处理器异步处理,handle负责读取、通知线程池处理、处理后发送给客户端.

    图解分析:

    ​ 客户端发送请求后注册到Selector(多路复用选择器)

    ​ Selector监听到读取操作时生成handle异步处理

    ​ handle读取消息通过线程池处理该消息,然后再发送给客户端

三、总结

​ NIO(Reactor)线程模型会有一个Selector(多路复用选择器)进行监听,只有存在可读消息才会有对应的业务线程进行处理,应对大流量的QPS,服务器也能应对自如了.

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~

支付宝
微信