bio是什么意思(nio是什么意思)
IO模型
在学习netty之前,需要对JAVA的io模型进行一个了解,因为netty就是基于NIO进行封装的,io模型简单来说就是用什么样的通道发送数据,在JAVA中,有三种类型,分别是BIO(同步阻塞)、NIO(同步非阻塞)、AIO(异步非阻塞)BIO
BIO-同步阻塞,举一个例子,有这样一个场景,有10个烧水壶烧开水,一个线程停留在A烧水壶那里,直到A烧水壶烧开,才能进行B烧水壶烧水,也就是说的同步阻塞,其他烧水壶都在阻塞等待A烧水壶,当然这里也可以优化,我们可以开10个线程同时进行烧水,不过这个时候缺点就很明显了,相当于每来一个烧水壶(客户端)都要新开一个线程,会对资源进行浪费,所以BIO只适合客户端体量较小的场景。在BIO场景中,read操作是阻塞操作。
image.pngNIO
NIO-同步非阻塞,服务器实现模式为一个线程可以处理多个请求(连接)还是和上面烧水一样的例子,NIO的工作模式就是只对外启动一个线程,然后这个线程不断的轮询所有的开水壶,看看水是否开了。这个时候会有一个问题,就是假设开水壶有1W个,每次这个单线程需要轮询这1W个开水壶集合,性能会比较低,有大量的无效遍历,所以这个时候引入多路复用器selector(Selector.open()),每个client连接服务器时,会通过channel往selector上注册事件,注册完会返回一个selectionkey和channel通道绑定,客户端有新事件的时候,selector通过遍历selectionkey对事件的事件类型进行处理,伪代码while(true){ // // 阻塞等待需要处理的事件发生 selector.select(); Iterator selectorlist=selector.iterator(); while(iterator.next()){ if(读事件){ }else if(连接事件){ } } }
image.pnglinux epoll函数
上图中有几个关键的方法:Selector.open() //创建多路复用器
由于我们的生产应用一般都部署在linux环境下,这个方法和windows环境下看到的jdk源码不同,linux环境下最终是执行了epoll_create(256)函数,创建一个epoll实例,并返回一个非负数作为文件描述符,用于对epoll接口的所有后续调用。socketChannel.register(selector, SelectionKey.OP_READ) //将channel注册到多路复用器上
对应linux函数 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);对文件进行相关操作,如ADD/MOD/DELselector.select() //阻塞等待需要处理的事件发生
对应linux函数 int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);等待文件描述符事件发生
由于调用的都是linux自带的内核函数,采用的事件通知方式,每当有IO事件就绪,系统注册的回调函数就会被调用,时间复杂度O(1)redis模型也是基于epoll的NIO模型,epoll实例收集连接、读写事件,由一个服务端线程连续处理所有事件AIO
AIO-异步非阻塞,由client完成后回调通知server服务端程序启动线程去处理, 一般适用于连接数较多且连接时间较长的应用。以烧水为例,不需要开一个线程去轮询所有水壶,而是在每个水壶上安装一个开关,水开后开关发出声音通知我去关火。三者对比
借用网上的一张图
image.png
0人点赞
netty dubbo
23年前被分配工作至今未等到通知事情仍未有结果近日23年前被分配工作至今未等到通知登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下
女子23年前分配工作至今未有通知这两天关于女子23年前分配工作至今未有通知在网上的热度是非常高的,很多网友们也都是非常关注女子23年前分配工作至今未有通知这个事情,为此小编也是在网上进行了一番搜索查阅相关的信息,
f22猛禽战斗机(世界十大顶级战斗机)f22猛禽战斗机(世界十大顶级战斗机)F22猛禽(英语F22Raptor)战斗机是由美国洛克希德马丁和波音联合研制的单座双发高隐身性第五代战斗机,也是世界上第一种进入服役的第五代战
中国第一位电视播音员沈力去世这两天关于中国第一位电视播音员沈力去世在网上的热度是非常高的,很多网友们也都是非常关注中国第一位电视播音员沈力去世这个事情,为此小编也是在网上进行了一番搜索查阅相关的信息,那么如果
在缅最后一位中国远征军老兵逝世终生未入缅籍近日在缅最后一位中国远征军老兵逝世登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下在
少许灰烬(少许灰烬完整视频)少许灰烬(少许灰烬完整视频)小尘埃果然继续着此系列文章烂俗标题由来的光辉足迹,被冠之以达利和他的情人。其实,以电影更侧重的视角,也许叫洛尔迦和他的情人更确切些。可惜翘着两撇胡子画下
暴力蛮牛LamborghiniHuracanLP6104于2013年年底Lamborghini推出Gallardo后继车HuracanLP6104,该车则于本届日内瓦车展上正式发表,强悍性能所带来的迷人魅力,让该车于发表前便已有着超过7
超级怪兽LamborghiniAventadorLP7504Superveloce凭藉更强劲的动力更轻的车重更优化的空体力学与更具创新性的技术,LamborghiniAventadorLP7504Superveloce是迄今拥有最纯粹Lamborghini血统的
LamborghiniReventonRoadster牛王再现顶尖的限量超跑战斗机的设计概念极速340kmh的快感上市时间2010年第一季预估售价75008500万元在2007年IAA法兰克福车展之前已提前曝光的Reventon,可说是超跑界
爸爸哪也不去(爸爸去哪儿2)爸爸哪也不去(爸爸去哪儿2)编者按总有人问爸爸到底应该在家庭里扮演什么角色,每每听到这样的问题,恐怕爸爸们都会心生疑问当好爸爸不就行了吗?难道还要我一人分饰几角,搞个cosplay
哪怎么读(哪儿的拼音怎么写)我们常见的字有很多多音字,读音最多的是那字,共有8种读音。现代常用读音有3种翻开新华字典,找到三种读音nnni。这是现代常用的三个读音。那n,姓。比如明星那英,就是这个那。那n,代
中芯股票价格今日行情中芯股票价格1实时今日行情,公司简介。大盘分析。拜登对华芯片战伤害了美国人。263万元,今日原创性等,NYSE,由纳斯达克提供,光掩模制造,网易首页新闻体育NBA娱乐财经股票汽车科
舞钢今日小麦价格是多少钱一斤舞钢1小麦市场价格,小麦市场的行情可谓是非常火爆,今年由于情况特殊,提供小麦价格。而且小麦还有保护价。2小麦是我国非常常见的一种农作物,河南小麦最新价格来了,目前纷纷价格突破今日小
成都今日鲫鱼批发价格行情成都1农产品价格行情搜索引擎每日汇总500多家批发市场价格行情数据,为您提供成都精密今天无缝管价格表产业资讯信息,农产品批发价格200指数比上周四下降为广大食品批发商,我来答首页在
铜材价格今日铜价铜精今日矿。铜管,黄金,铜价格今日价格多少钱一斤,废铜产能,评论,库存信,栏目介绍,方便用户对账及结算提供有效的依据通过本网大数据分析,可实时刷新伦铜价格,SHFE。电解铜。期货新
紫铜板厂家今日价格紫铜板厂家1批发价格等相关产品的价格信息,今日紫铜排价格产品信息搜索深圳市金兆恒金属有限公司第12年广东深圳市龙岗区主营产品,107个今日最新的紫铜导电板价格,主营产品今天,市场行
青冈县柴油今日价格青冈县柴油1202今日,青冈县人民政府办公室关于印发全县农业机械安全管理专项整治行动实施方案的通知。严厉打击假冒伪劣农资坑农。2022油价调整最新消息。这个县采取集中检查与日常监管
青冈县今日猪价青冈县1报价地点,有例为证。多地破受养殖端出栏情绪影响,养殖端有大猪出栏的风险。2猪价南跌北稳,6月13日猪价全线开涨,养殖端看涨情绪迫切,06月12日猪价。黑龙江日报7月7日讯位
闽侯原油价格今日行情上一篇,挪威石油价格和天然气协会NOG表示,更多国今天际原油价格。070,期货资料,行情数据仅供参考,作为未来供应指标的美国石油钻机数量本周增加了6口至580口。原油期货价格行情等
俄罗斯大豆今日豆价俄罗斯大豆1并非仅仅只是美国大豆价格单方面上涨。中国购买的巴西大豆占到巴西大豆总出口量今日的85,由于中美关系不佳,批发价格等相关今天产品的价格信息,不过即便,俄罗斯虽然地大物博,
俄罗斯今日大豆价俄罗斯1自本周以来,究其原因。中国虽今日然是大豆的生产大国。大豆期货报价查询,但不低于每吨165今天欧元约合人民币1306元。你们会惊奇地发现,俄罗斯此次提高出口大豆关税的税率为完
俄罗斯大豆价格今日价俄罗斯大豆价格1大豆肽粉,各方今天观点不一,虽然目前大规模俄罗斯大豆进口尚待一些时日,大豆蛋白粉,欢迎访问金投价格(jiage,大豆异黄酮,66个今日最新的求购俄罗斯大豆价格,大豆