什么是NIO?什么是BIO?NIO 和 BIO 有什么区别?( 三 )


什么是NIO?什么是BIO?NIO 和 BIO 有什么区别?

文章插图
 
四、总结BIO的话 , 每次网络请求过来之后 , 服务器都是会为这个请求创建一个线程 , 这个线程会一直等待这个请求后续的数据 , 等处理完成后才会销毁这个线程;而NIO , 当每次网络请求过来时 , 服务器不会马上创建一个线程去处理这个请求 , 而是会交给一个Selector线程 , 只有这个请求后续的数据全部传输过来后 , Selector才会去通知其他其他线程或者创建一个线程来处理这个请求 。
这就是NIO和BIO最大的差别 , 只有数据传输到服务器时才会让线程去处理 , 减少了线程的空等待 , 大部分情况下可以采用线程池的方式来处理数据 , 可以提高线程的利用率 。




推荐阅读