NIO 怎么解决C10K问题
NIO 提供一套非堵塞接口
这样就不需要我们为每个C/S长连接,保留一个单独的处理线程了
堵塞I/O 之所以需要给每个socket长连接,指定一个线程,就因为堵塞吗
现在这个NIO API 它具备非堵塞特性了,就可以用1个线程去检查N个socket
在JAVA层面,NIO包给我们提供了一个选择器SELECTOR
我们需要把检查的SOCKET注册到这个selector中,然后主线程
堵塞在select方法里 ,当选择器发现socket就绪时,某个socket就绪时
就会唤醒主线程,然后可以通过selector 获取到就绪状态的socket,进行相应处理