CS-Notes 学习笔记
Java 后端 · 操作系统

BIO、NIO 和 AIO 有什么区别?

先自己想一想,再看参考要点

参考要点

  • BIO 对应阻塞式 I/O,线程阻塞在 read 上,每个连接要一个线程
  • NIO 对应 I/O 复用,Channel 设为非阻塞,一个线程在 Selector.select() 上等待多个连接中任意一个就绪(Linux 上用 epoll 实现)
  • AIO 对应异步 I/O 的编程方式,数据复制到应用的缓冲区后才通知应用,但 Linux 上的 JDK 实际用 epoll 加线程池实现
  • BIO、NIO 在复制数据时仍会阻塞,属于同步 I/O
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。