多路复用技术、网络IO

看了很多多路复用知识点,现在来简单的总结一下。
IOCP、POLL、EPOLL,这些都是操作系统层面的。
NIO是JAVA API,是根据不通操作系统来封装的。

Netty、VERT.X
同步和阻塞:
同步是这部分IO操作由Java自身来完成,非同步就是这部分IO操作由操作系统来代理完成;
阻塞就是所有IO操作都由一个线程来完成,不浪费资源;非阻塞就是有多少个连接就有多少个线程;
BIO是同步且阻塞,NIO是同步非阻塞,AIO(NIO2)是异步非阻塞;
BIO、NIO、NIO2(AIO)都是Java API,封装了底层操作系统细节;因此这也就是Java语言的特性之跨平台性;
至于Select、Poll、EPoll则是操作系统层面的多路复用技术;
但是这一API实际上也并不是很方便使用,因此就有了Netty;以及Vert.x;

所以可以简单的画一个流程图来形容这一过程,
OS(IOCP&POLL&EPOLL(LINUX, UNIX)) – BIO、NIO、AIO(NIO2)(Java7,JVM技术) – Netty(高性能网络通信框架,但只负责处理网络IO这一块) – Vert.x(和Netty相配合处理其他网络事件)

了解技术的历史是很有意思的事情,了解到因为需求的变更而发生技术的迭代是很有成就感的事情。因此呢,从一开始的源头进行了解则更能对技术的深度有一个清晰的把握。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值