NIO 靠什么解决C10K
NIO包给我们提供一套非阻塞的接口
这样就不需要我们为每一个c/s长连接,保持一个单独的处理线程了
堵塞IO 之所以需要给每个socket长连接,指定一个线程
就是因为它堵塞嘛
现在这个NIO API 它具备非堵塞特性了,就可以用一个线程去检查N个socket
NIO包给我们提供了一个选择器selector
然后我们需要把检查的socket注册到这个selector种,然后主线程
堵塞在selector#select方法里面
当选择器发现socket就绪了,某个socket就绪了
就会唤醒主线程,然后咱们可以通过selector 获取到就绪状态的socket,进行相应的处理