异步:多线程干多件事,叫异步

同步:单线程干多件事,叫同步

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 总结相关推荐

  1. 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...

    网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数 ...

  2. 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章

    来源:编程新说 网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTT ...

  3. 同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO

    IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO.异步非阻塞的AIO. 一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSock ...

  4. cpu 被挂起和阻塞_迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章...

    网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数 ...

  5. 关于BIO | NIO | AIO的讨论

    关于BIO | NIO | AIO的讨论一直存在,有时候也很容易让人混淆,就我的理解,给出一个解释: BIO | NIO | AIO,本身的描述都是在Java语言的基础上的.而描述IO,我们需要从两个 ...

  6. Netty序章之BIO NIO AIO演变

    Netty序章之BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠的网络服务器和客户端程序.Netty简化了网络程序的开发,是很多框架和公司都在使用 ...

  7. Java之IO,BIO,NIO,AIO

    2019独角兽企业重金招聘Python工程师标准>>> 参考文献一 IO基础知识回顾 java的核心库java.io提供了全面的IO接口.包括:文件读写.标准设备输出等.Java中I ...

  8. 也谈BIO | NIO | AIO (Java版--转)

    http://my.oschina.net/bluesky0leon/blog/132361 关于BIO | NIO | AIO的讨论一直存在,有时候也很容易让人混淆,就我的理解,给出一个解释: BI ...

  9. IO: BIO ? NIO ? AIO?

    IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO.异步非阻塞的AIO. 一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSock ...

  10. java BIO NIO AIO 理论篇

    http://furturestrategist.iteye.com/blog/1463369 java中的IO主要源自于网络和本地文件 IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO. ...

最新文章

  1. 35个立体动感的视差滚动效果网站作品
  2. 小知识系列:数据库的主键和外键
  3. 系统弹出菜单类名是固定的. #32769
  4. 计算机操作系统(3):操作系统的基本特征
  5. html div分钟刷新一次啊代码_接口测试平台代码实现57首页重构5
  6. CSDN-markdown编辑器使用说明
  7. 详解HelloWorldBasic实例
  8. from collections import OrderedDict
  9. 天外键盘映射工具(适合魔兽真三改键)
  10. 在反复的复习中给自己一点收益,一个机会,一些动力!
  11. cef注入js_CefSharp JavaScript注入
  12. oracle周数计算方法
  13. c语言编程中句柄无效怎么解决,句柄无效,小编教你句柄无效怎么解决
  14. oracle存储过程报ORA-20000的错误
  15. 架构(B站尚硅谷大数据项目实践 电影推荐系统概述)
  16. JavaScript教程-setTimeout,setInterval,
  17. springboot返回时间有错解决方案
  18. java mysql geometry,扩展mybatis和通用mapper,支持mysql的geometry类型字段,mybatis用mapper...
  19. 强联通分量与双连通分量
  20. 大学临近结束回望高中

热门文章

  1. 第五届浙江省大学生网络与信息安全竞赛-技能挑战赛WP
  2. 我如何把薪水从 50人民币/天 提升到 100美元/小时的 (2)
  3. 移植三星的kernel(二)
  4. 已知RSA的模数和指数生成pem公钥文件
  5. 汽车知识和点评系统毕业设计成品作品(4)开发技术文档
  6. 帝国cms评分、投票
  7. 高通 SM6350平台,个别的耳机录音无声
  8. C# CsQuery Dom操作帮助类及用法 - 实用 - lbx
  9. ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)
  10. Show and Tell模型