BIO(Blocking I/O)即阻塞 I/O,在进行 I/O 操作时,线程会一直阻塞等待,直到 I/O 操作完成,这种方式的 I/O 操作效率较低。

AIO(Asynchronous I/O)即异步 I/O,线程在进行 I/O 操作时,不会一直阻塞等待,而是先发起 I/O 请求,然后继续执行其他任务,当 I/O 操作完成后,再回调通知线程,这种方式的 I/O 操作效率较高。

NIO(Non-blocking I/O)即非阻塞 I/O,与 AIO 类似,线程在进行 I/O 操作时,也不会一直阻塞等待,而是先发起 I/O 请求,然后继续执行其他任务,但是当 I/O 操作未完成时,线程需要不断轮询等待,这种方式的 I/O 操作效率介于 BIO 和 AIO 之间。

多路复用是指通过一种机制,使单个线程可以监视多个 I/O 事件,当某个 I/O 事件发生时,就会通知该线程进行处理。常见的多路复用技术有 select、poll 和 epoll。多路复用可以减少线程的数量,提高系统的并发性能。

BIO、AIO、NIO 和 多路复用:深入理解 I/O 模型

原文地址: https://www.cveoy.top/t/topic/kWsO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录