Netty 4.x学习笔记——线程模型
Posted 饺子陈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty 4.x学习笔记——线程模型相关的知识,希望对你有一定的参考价值。
目前存在的线程模型
传统阻塞 I/O服务模型(阻塞式IO)
Reactor模式(反应器模式)
根据Reactor的数量和处理资源池线程的数量不同,有3种典型的实现
单Reactor单线程
单Reactor多线程
主从Reactor多线程
Netty线程模式
主要基于主从Reactor多线程模型做了一定的改进,其中主从Reactor多线程模型有多个Reactor
传统阻塞 I/O服务模型
特点:
采用阻塞IO模式获取输入的数据
每个连接都需要独立的线程完成数据的输入,业务处理,数据返回
问题分析:
当并发数很大,就会创建大量的线程,占用很大系统资源
连接创建后,如果当前线程暂时没有数据可读,该线程会阻塞在read操作,造成线程资源的浪费
Reactor模式
针对传统阻塞I/O服务模型的2个缺点,解决方案:
基于I/O复用模型:多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象等待,无需阻塞等待所有连接。当某个连接有新的数据可以处理时,操作系统通知应用程序,线程从阻塞状态返回,开始进行业务处理。
基于线程池复用线程资源:不比比再为每个连接创建线程,将连接完成后的业务处理任务分配给线程进行处理,一个线程可以处理多个连接的业务。
针对 1 Reactor对应的叫法:反应器模式/分发者模式/通知者模式
以上是关于Netty 4.x学习笔记——线程模型的主要内容,如果未能解决你的问题,请参考以下文章