异步同步 oio nio aio 总结
异步:多线程干多件事,叫异步
同步:单线程干多件事,叫同步
oio:单线程中,connect,canRead,read,canWrite,write 5种操作有可能阻塞当前线程叫oio。为啥会有这种模型呢?因为系统底层遇到以上5种事件并不通知你,你都需要自己去等。
nio:单线程中,connect,canRead,canWrite 不阻塞当前线程,read和write 阻塞当前线程 叫nio。为啥会有这种模型呢?自从系统底层支持了select网络模型,系统可以帮你发现connect/canRead/canWrite 你就不需要自己去等(阻塞)了,时不常去问一下就可以了。
aio:单线程中,connect,canRead,read,canWrite,write 都不阻塞当前线程 叫aio。这种牛逼,系统自动帮你处理了 connect,canRead,read,canWrite,write 五种事件,然后把读到的数据或写入的结果直接给你,你都不用关心是否可读可写。
同步oio:只能有效处理单个连接,几乎是不可用的模型。无法处理多个连接,因为如果第一个连接是不可读状态线程会阻塞,第二个连接根本进不来。
异步oio:可以处理多个连接,比较传统的模型。每个线程处理一个连接,线程内部连接的操作可以各种阻塞。缺点线程数随连接数增加而增加,上下文切换严重,不适合高连接低数据场景
同步nio:单线程中使用nio,可以处理多个连接,传说中的多路复用。java.nio 的基本模型。缺点是虽然connect,canRead,canWrite等事件未到达时不会阻塞线程,但是read和write会阻塞。只适合高连接低数据场景
异步nio:netty使用的方式,反应堆模式,可用性极高。使用两个线程池A/B,A异步处理connect canRead canWrite 等非阻塞事件,B异步处理write read 等阻塞事件。在高并发高数据量场景都可以使用。
异步aio:未知
异步同步 oio nio aio 总结相关推荐
- 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...
网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数 ...
- 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章
来源:编程新说 网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTT ...
- 同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO
IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO.异步非阻塞的AIO. 一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSock ...
- cpu 被挂起和阻塞_迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章...
网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数 ...
- 关于BIO | NIO | AIO的讨论
关于BIO | NIO | AIO的讨论一直存在,有时候也很容易让人混淆,就我的理解,给出一个解释: BIO | NIO | AIO,本身的描述都是在Java语言的基础上的.而描述IO,我们需要从两个 ...
- Netty序章之BIO NIO AIO演变
Netty序章之BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠的网络服务器和客户端程序.Netty简化了网络程序的开发,是很多框架和公司都在使用 ...
- Java之IO,BIO,NIO,AIO
2019独角兽企业重金招聘Python工程师标准>>> 参考文献一 IO基础知识回顾 java的核心库java.io提供了全面的IO接口.包括:文件读写.标准设备输出等.Java中I ...
- 也谈BIO | NIO | AIO (Java版--转)
http://my.oschina.net/bluesky0leon/blog/132361 关于BIO | NIO | AIO的讨论一直存在,有时候也很容易让人混淆,就我的理解,给出一个解释: BI ...
- IO: BIO ? NIO ? AIO?
IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO.异步非阻塞的AIO. 一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSock ...
- java BIO NIO AIO 理论篇
http://furturestrategist.iteye.com/blog/1463369 java中的IO主要源自于网络和本地文件 IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO. ...
最新文章
- 35个立体动感的视差滚动效果网站作品
- 小知识系列:数据库的主键和外键
- 系统弹出菜单类名是固定的. #32769
- 计算机操作系统(3):操作系统的基本特征
- html div分钟刷新一次啊代码_接口测试平台代码实现57首页重构5
- CSDN-markdown编辑器使用说明
- 详解HelloWorldBasic实例
- from collections import OrderedDict
- 天外键盘映射工具(适合魔兽真三改键)
- 在反复的复习中给自己一点收益,一个机会,一些动力!
- cef注入js_CefSharp JavaScript注入
- oracle周数计算方法
- c语言编程中句柄无效怎么解决,句柄无效,小编教你句柄无效怎么解决
- oracle存储过程报ORA-20000的错误
- 架构(B站尚硅谷大数据项目实践 电影推荐系统概述)
- JavaScript教程-setTimeout,setInterval,
- springboot返回时间有错解决方案
- java mysql geometry,扩展mybatis和通用mapper,支持mysql的geometry类型字段,mybatis用mapper...
- 强联通分量与双连通分量
- 大学临近结束回望高中