OIO、NIO、AIO小结
IO小结
OIO、NIO、AIO
BIO中,每个线程只能处理一个channel(同步的,该线程和该channel绑定)。
线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成,如图:
BIO的做法是,叫一个线程停留在一个水壶那,直到这个水壶烧开,才去处理下一个水壶。
NIO中(同步非阻塞通信),每个线程可以处理多个channel(异步)。
线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成
NIO