4 I/O线程模型
4.1 IO线程模型分类
目前存在的线程模型主要有:
1)传统的阻塞IO服务模型
2)Reactor模式
Reactor模式又可以根据Reactor数量和处理线程数量不同,分为:
1)单Reactor单线程
2)单Reactor多线程
3)主从Reactor多线程
Netty主要是基于主从Reactor多线程模型做了改进,其中主从Reactor
多线程模型有多个Reactor。
4.2 Reactor模型概述
传统阻塞IO模型缺点
1)每个连接都需要独立的线程去完成处理,当并发量十分大的时候,大量线程可能导致系统崩溃
2)连接创建后,没有数据传输时,线程会一直阻塞
Reactor的优点
1)基于IO多路复用:一个线程监听多个连接,当有数据处理时才执行对应的业务处理,不会导致线程阻塞。
2)基于线程池复用线程资源:不必为每个连接请求创建一个线程,而是使用线程池分配线程。
Reactor模式也叫Dispatcher模式,分发者模式。
单Reactor单线程模型