IO NIO Reactor

这里主要谈一下网络通信

1 IO

客户端和服务器端通信,如果服务器端(餐厅)是单线程的(只有一个服务员),那么一个socket客户端(客户)获得服务器端连接(进入餐厅大门),因为只有一个线程(服务员),其他的socket客户端(其他的客户)都不能获得连接。就算获得连接的socket客户端(进入餐厅的客户)只在服务器端闲着(和餐厅服务员聊天),其他的客户端仍然无法和服务器端连接(服务员只有一个,其他的客户获得不了服务),服务器利用率是极低的。

简而言之,餐厅只有一个服务员,只允许一个客户进餐厅,其他的客户必须等着,诺大的餐厅只有一个客户,餐厅利用率是非常低的。

改进,餐厅多招几个服务员,每个服务员为一个客户服务。如果,有10000个客户,餐厅就要招10000个服务员。这显然是不现实的。这也是传统IO存在的问题,单客户端、单服务端,一个服务端只能为一个客户端提供服务。

2 NIO

IO是单服务端 单客户端,现在NIO对其改进一下添加了Selector,那么一个服务端就可以为多个客户端进行服务了。

 Seletor就非常重要了,Selector就是单线程的Reactor模型

3 单线程Reactor模型

服务员是单线程的,如果客户1点餐慢,客户2,3,4需要一直等待客户1点餐。单线程模型依然存在问题。

4 Netty(多线程Reactor模型)

两个关键的成员boss和worker

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值