Netty源码分析系列之五:Netty多线程模型

·如果我们自己是Netty网络应用的设计者,想要设计出高性能的网络应用,首先要面对的问题就是如何解决网络编程的性能瓶颈。那么网络应用的性能瓶颈是什么呢?我们都知道传统的网络应用使用的是BIO模型,也就是阻塞式IO。网络程序处理当中的read()以及write() 操作都会阻塞当前线程的。所以在传统的IO模型当中每一个socket连接都会有单独的线程来进行处理。

在这里插入图片描述

但是在当前的互联网时代,客户端的连接可能是百万、千万甚至上亿级别的,服务器不可能创建这么多的线程来处理客户端请求。这就是传统IO网络连接的性能瓶颈所在。

(2)模型优化

如上一节内容所述,传统的IO模型的性能瓶颈在于服务端需要为每一个socket连接分配线程来满足业务处理的需要。那么有没有一种方法可以不需要建立那么多连接也可以处理客户端的请求呢?如果要用一个线程处理多个请求,那么BIO是无法实现的。所以我们可采用java中的NIO来完成此部分的优化操作。Netty的做法是采用Reactor模式,所谓Reactor模式就是是一个使用了同步非阻塞的I/O多路复用机制的模式。这里不再展开说明。

Netty的世界中,EventLoopGr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值