java nio 连接数_Java NIO 基础一 NIO概念

我们都知道IO包括磁盘IO和网络IO,相对于CPU的速度,IO性能差了好几个数量级,应用程序的瓶颈主要在IO这块。

NIO的出现就是为了优化IO性能,JDK1.4之前IO都是使用流来进行IO操作,流操作都是单向的,读写都是阻塞的。JDK1.4版本添加了NIO,NIO实际上是基于操作系统的新IO特性(select、poll、epoll)。

NIO在Java中叫New IO,多路复用IO。NIO的特性是系统在进行IO操作时不会阻塞(在select()和缓冲区拷贝时还是会阻塞),可以去干一些其他事情,你可以随时过来询问一下IO是否就绪。比如:你去菜市场买菜,你准备买一只鸭子,你可以和老板说你要一只鸭子,但是鸭子还没有杀好,这时你可以和老板说,你先杀好,我过一会在来拿,这时你可以去买其他菜,待会在过来。这样的好处就是避免了等待(阻塞),让费系统资源。

传统的网络IO服务器实现

一个线程用来接收新的连接accept,每次有新的连接过来后新开一个线程来处理这个连接的IO,或者使用连接池。这样一个线程在连接断开之前只能一直服务于这个连接,实际上连接不是非常活跃,这中间会导致极大的资源浪费。而且操作系统有线程数量的限制,无法无限的开启新线程来处理高并发的连接数。

NIO网络服务器实现

相对于传统IO,Nio能够高效的利用线程资源,因为IO非阻塞特性,一个线程可以处理多个连接,这样相同数量的连接池对比传统IO可以服务更多数量的连接,提高服务器的并发能力。

0017ac73b81f252bef5b93c980ee1b27.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值