BIO,是指Blocking IO阻塞的io,是针对socket编程从网络上读写操作而言的。
对于传统的IO,在socket编程中,read,write,connect服务端的accept都会产生阻塞。
因此,在jdk1.4之前,如果遇到并发请求。那么就需要开启多个线程,每个线程处理一个网络请求。
这就会造成问题
线程的增多,会造成cpu压力增大
线程增大,会导致线程栈增多,因此会占用大量的内存。
然而这些线程,并不是都在请求,所以会造成cpu,内存的浪费。
利用线程池确实可以解决,但是线程池也是有数量的。假设有5个线程,那如果这5个线程同时阻塞了。那么另外的线程就又在等待了。
基于上诉问题。NIO出现了。
原文:https://www.cnblogs.com/tomato190/p/12678450.html