浅谈BIO、NIO、AIO,一些感悟

浅谈BIO、NIO、AIO,一些感悟
用了io这么久,有没有真正的理解了,比如BIO、NIO、AIO是什么,能够在什么场景用到?
BIO是同步阻塞IO,就是传统io,处理方式简单,一次只能读取一个字节流,并发能力低。同步非阻塞,就是咱们干一件事情,比如排队买面包,在买面包的过程中,不能做其他的事情,买完之后才能离开。可以使用在并发要求不高的服务中,但程序简单直观。
NIO是同步非阻塞io,是传统io的升级,客户端和服务端通过Channel通讯,实现了多路复用的情况。同步非阻塞,就是咱们干一件事情,比如排队买面包,在买面包的过程中,通过买票等待,等待的过程中还可以干其他的事情,但是不能离开买面包的地方。可以应用在聊天服务器,多个线程并发短连接的场景,成熟框架netty,使用netty框架解决了jdk的nio空轮询的问题.
AIO是异步非阻塞io,是NIO的升级,也叫NIO2,异步的io操作是基于事件和回调机制,可以使用在多线程长连接的创建,比如相册服务器,服务段了,会有一个长连接不断轮询,进行信息同步。

猜你喜欢

转载自blog.51cto.com/xxdeelon/2531194