Java IO的理解总结,BIO,NIO,AIO
Java 的IO操作有两个阻塞点,等待数据就绪的过程和读取数据的过程
- BIO,同步阻塞IO,等待数据就绪和读取数据的过程都是阻塞的。
- NIO,同步非阻塞IO,等待数据就绪的过程是非阻塞的,但是读取数据的过程是阻塞的。
- AIO,异步非阻塞IO,等待数据就绪的过程和读取数据的过程都是非阻塞(操作系统帮忙做了)。
阻塞IO和非阻塞IO的区别在于第一步,也就是等待数据就绪的过程。
同步IO和异步IO的区别在于第二步,也就是读取数据的过程。
同步异步指的是数据读取的过程。
阻塞非阻塞指的是数据就绪的过程。
参考好文:
https://www.cnblogs.com/diegodu/p/6823855.html
https://www.cnblogs.com/lixinjie/p/a-post-tell-clearly-about-io-multiplexing-and-async-io.html