阻塞IO和NIO的区别
个人理解
阻塞io
客户端连接后服务器创建一个socket与客户端的socket 通讯,这个 socket的方法需要线程运行,一个线程运行一个socket的服务即一个线程服务一个客户端,多个用户对应多个线程,
多个线程轮番获得时间片,若是一个socket等待用户输入或者等用户读取(缓冲区的信息未处理好),则阻塞,时间片轮到这个线程时就这么在等待中啥也不干,直到客户端回应,所以造成CPU浪费
Nio
客户端连接和 服务器创建一个socket与客户端的socket 通讯 ,给服务端的socket注册上事件(读写。。。),用一个线程统一的监听所有socket的所有事件,一有事件到了,就把这个socket
需要执行的方法交给一个线程去执行。
阻塞I/O通信模型
多路复用NIO原理及通信模型