itcast20120909
itcast20120909
2016-09-05 12:34

关于NIO是如何处理多个请求的没搞明白

学了下NIO, 但是始终没搞明白它是怎么处理的,
怎么比BIO用更少的线程处理更多的请求,归纳了下,大概有这么几个问题:
1, nio是单线程处理所有客户端请求还是多线程处理?
2, 如果是单线程处理,若某个请求执行时间较长(比如在上传或下载文件)那么将会造成其他请求无法及时响应?
3, 如果是多线程处理,是每个请求对应一个线程, 还是多个请求对应一个线程?如果是多个请求对应一个线程,那么与BIO中 线程池+队列 的方式有何区别?
4, NIO是非阻塞的, 但ServerSocketChannel的accept()方法和Selector的select()方法都是阻塞的,到底是在哪里非阻塞呢?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答

为你推荐

换一换