所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

为什么nio效率会比bio高?

发布时间:2020-04-12 08:37:48

资讯分类:nio  bio  效率  为什么  好了  这两个  阻塞
为什么nio效率会比bio高?

这两个只是IO的不同模式,阻塞与非阻塞,bio就好比你下馆子点了菜坐等服务员上菜,在菜还没上之前你哪儿也不去就坐那等,nio好比在家问你妈饭好了没?你妈说没好,你可以玩局农药,接着问好了没?没好,可以出去打个酱油,接着问好了没?没好。。。。。。在饭好之前可以干好多其他的事。单单看这两个没啥意思,结合IO多路复用select,poll,epoll模式,来理解

为什么nio效率会比bio高?

我也只了解了个大概,分场景,对于socket来说,对于io密集的情况来说,nio不一定比io效率高,比如文件下载服务器。但是对于cpu密集的情况来说,nio的效率就高了,前面他们说到了,利用了操作系统提供的能力,而不是java用循环封装io来实现的

为什么nio效率会比bio高?

核心点是合理利用了硬件提供的特性。NIO借助通道,仅在开始和结束IO时需要CPU参与,其余时段的控制权都交由通道,直接进行磁盘和内存数据交换;BIO则需要CPU中寄存器参与数据中转,如果是直接存取方式CPU还需要轮询检查,中断驱动方式也需要在字传输后进行检查。总之,NIO通过下放CPU控制权给通道,从而减少了中断,且不参与数据中转,这样提高了数据处理的速度。

留言与评论(共有 0 条评论)
   
验证码:
Top