同步IO和异步IO的区别就在于:数据访问的时候进程是否一直等待!
阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回!
Unix网络编程5种I/O模型
阻塞I/O

非阻塞I/O

I/O复用

信号驱动的I/O

异步I/O

上述五种I/O模型文字描述详见:https://blog.csdn.net/hguisu/article/details/7453390
Java IO模型
1:1同步阻塞IO通信模型

客户端创建连接,被Acceptor接收,之后Acceptor创建一个线程处理客户端请求,一个客户端对应一个线程。
M:N同步阻塞IO通信模型

不在一个用户创建一个线程,而是将请求交给线程池处理。
非阻塞式IO模型(NIO)--NIO+单线程Reactor模式

非阻塞式IO模型(NIO)--NIO+多线程Reactor模式

非阻塞式IO模型(NIO)--NIO+主从多线程Reactor模式

上述Java IO模型文字描述详见:https://blog.csdn.net/qq924862077/article/details/81026740
java NIO 参考资料http://tutorials.jenkov.com/java-nio/index.html
网友评论