阻塞和非阻塞在于第一个,发起IO请求,对于NIO来说通过channel发起IO操作请求后,其实就返回了,所以是非阻塞 。
十二、谈一下你对Reactor模型的理解?Reactor模型包含两个组件:
Reactor:负责查询、响应IO事件,当检测到IO事件时,分发给Handlers处理 。
Handler:与IO事件绑定,负责IO事件的处理 。
它包含几种实现方式:
单线程Reactor
这个模式reactor和handler在一个线程中,如果某个handler阻塞的话,会导致其他所有的handler无法执行,而且无法充分利用多核的性能 。
文章插图
单Reactor多线程
由于decode、compute、encode的操作并非IO的操作,多线程Reactor的思路就是充分发挥多核的特性,同时把非IO的操作剥离开 。
但是,单个Reactor承担了所有的事件监听、响应工作,如果连接过多,还是可能存在性能问题 。
文章插图
多Reactor多线程
为了解决单Reactor的性能问题,就产生了多Reactor的模式 。其中mainReactor建立连接,多个subReactor则负责数据读写 。
文章插图
推荐阅读
- 家庭网络不好自己动手查—纯小白篇
- 红茶高温提香有啥好处,红茶表面为什么有白霜
- 舔狗是贬义词还是褒义词?
- 当我们面对校园霸凌时我们应该怎么做?关于校园霸凌的书
- 月子里下面有异味
- 形容女人薄纱半遮面的诗句?形容面纱遮脸的女子
- 如何把excel创建桌面快捷?excel怎么在桌面上创建快捷方式
- 天差地别,手机相机CMOS传感器实际面积对比
- 龟头下面菜花
- 大腿面发麻