惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
H
Help Net Security
GbyAI
GbyAI
博客园_首页
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
月光博客
月光博客
美团技术团队
B
Blog RSS Feed
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园 - 叶小钗
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Proofpoint News Feed

博客园 - netfocus

IM即时通信软件设计 邮箱核心业务领域建模 DDD中的聚合和UML中的聚合以及组合的关系 对关系建模 DDD战略设计相关核心概念的理解 DDD领域建模基本流程 谈谈Paxos一致性算法和一致性这个名词 EventStore文件存储设计 DDD领域驱动设计 - 设计文档模板 调漂技巧总结 EQueue 2.3.2版本发布(支持高可用) 使用ENode框架前您需要了解的东西(初稿) 各协议授权详情 限流的三个思路 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路 浅谈我对DDD领域驱动设计的理解 【转载】高并发的核心技术-幂等的实现方案 ENode 2.8 最新架构图简介 三种减库存方式
BIO\NIO\AIO记录 - netfocus - 博客园
netfocus · 2016-08-17 · via 博客园 - netfocus

IO操作可以分为3类:同步阻塞(BIO)、同步非阻塞(NIO)、异步(AIO)。

同步阻塞(BIO):
在此种方式下,用户线程发起一个IO操作以后,必须等待IO操作的完成,只有当真正完成了IO操作以后,用户线程才能做后续的事情。

同步非阻塞(NIO):
在此种方式下,用户线程发起一个IO操作以后,可返回做其它事情,但是用户线程需要时不时的询问IO操作是否完成,从而引入了不必要的CPU资源浪费。Java中的Netty使用的是NIO。

异步(AIO):
在此种方式下,用户线程发起一个IO操作以后,可返回做其它事情,也不需要时不时的询问IO操作是否完成,因为操作系统内核完成IO操作以后会主动通知用户线程。.NET中的SocketAsyncEventArgs实现了IOCP,IOCP是一种AIO。