Java中OIO与NIO的简单区别

1、OIO中,每个线程只能处理一个channel(同步的,该线程和channel绑定)。

线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。

如图:

NIO中,每个线程可以处理多个channel(异步)。

线程发起IO请求,立即返回;

内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。

AIO中,线程发起IO请求,立即返回;

内存做好IO操作的准备之后,做IO操作,直到操作完成或者失败,通过调用注册的回调函数通知线程做IO操作完成或者失败。

https://mp.weixin.qq.com/s/sV_iMAnr0kis3ggc3elVcw

猜你喜欢

转载自blog.csdn.net/qq_24047659/article/details/86618800