Java I/O 模型的演进
相关概念 同步和异步 阻塞和非阻塞 Unix I/O 模型 阻塞 I/O 非阻塞 I/O I/O 多路复用(异步阻塞 I/O) 信号驱动 I/O(SIGIO) 异步 I/O 几种 I/O 模型的比较 常见 Java I/O 模型 “阻塞I/O”模式 改进为“阻塞I/O+多线程”模式 改进为“阻塞I/O+线程池”模式 改进为“非阻塞I/O”模式 改进为“异步I/O”模式 源码 参考引用 原文同步至 http://waylau.com/java-io-model-evolution/ 什么是同步?什么是异步?阻塞和非阻塞又有什么区别?本文先从 Unix 的 I/O 模型讲起,介绍了5种常见的 I/O 模型。而后再引出 Java 的 I/O 模型的演进过程,并用实例说明如何选择合适的 Java I/O 模型来提高系统的并发量和可用性。 由于,Java 的 I/O 依赖于操作系统的实现,所以先了解 Unix 的 I/O 模型有助于理解 Java 的 I/O。 相关概念 同步和异步 描述的是用户线程与内核的交互方式: 同步 是指用户线程发起 I/O 请求后需要等待或者轮询内核 I/O 操作完成后才能继续执行; 异步 是指用户线程发起 I/O 请求后仍继续执行,当内核 I/O 操作完成后会通知用户线程,或者调用用户线程注册的回调函数。 阻塞和非阻塞 描述的是用户线程调用内核 I/O 操作的方式