阻塞IO 常见的有我们的 tomcat , java多线程,阻塞IO 是指,线程如果没执行完,就不能释放资源,处理下一个请求(tomcat线程池中的线程资源,一个线程没执行完,不释放,就不能会线程池,tomca就不能分配它去执行下一个请求,即线程的指令没有被cpu取完,线程不能 去 重新 存 其他 指令)
阻塞IO又分为单线程模式阻塞,和多线程阻塞,tomcat默认是 多线程阻塞,即一个主线程去接收请求,但是不处理,去线程池开启一个新的线程去执行,这样可以提供并发量,虽然解决了主线程阻塞问题,但是 你新线程 还是存在阻塞问题的,
NIO 非阻塞IO:Netty , Redis
基于IO多路复用技术,只需要一个线程或者少量线程,就可以处理大量请求,从性能上来说NIO实现的服务器并发性一般大于BIO
不是说 单线程 就是 非阻塞 IO了,只有单线程 是 非阻塞IO设计的时候,单线程才可以处理并发问题,即 线程中的 指令 不需要指令全部被 cpu取完才能去,存新的指令
一般支持多线程的应用,都是默认采用 阻塞IO的
网络通信本来也是 IO,不要把 IO 就等于 文件读写,http本来就是 开启通道,以流的形式完成 数据的传输
本文探讨了阻塞IO在Java多线程中的局限,并介绍了NIO非阻塞IO在Tomcat和Netty等应用中的优势,强调了单线程非阻塞设计的重要性。通过Netty示例,说明了如何利用IO多路复用技术实现高并发。
968

被折叠的 条评论
为什么被折叠?



