BIO、NIO、AIO差别

网上非常多IO资料,对新手来说。越看越晕。依据自己的理解。总结对照了一下BIO、NIO、AIO。

BIO:线程发起IO请求,无论内核是否准备好IO操作,从发起请求起,线程一直堵塞,直到操作完毕。

例如以下图:


NIO(reactor模型):线程发起IO请求,马上返回;内核在做好IO操作的准备之后。通过调用注冊的回调函数通知线程做IO操作。线程開始堵塞,直到操作完毕。例如以下图:


AIO(proactor模型):线程发起IO请求,马上返回。内存做好IO操作的准备之后,做IO操作,直到操作完毕或者失败,通过调用注冊的回调函数通知线程做IO操作完毕或者失败。例如以下图:



个人浅见,欢迎拍砖!

原文地址:https://www.cnblogs.com/yfceshi/p/6747666.html