00:00
好,同学们,接下来我们继续聊一下艾欧多路复用功能疗效如何,能干些什么呀?为什么red底层就是I欧多路复用思想解释Linux内核一函数的体现,来吧老哎,杨哥这个不说过了吗?是不是粘错了笔记?你觉得我会同样的东西讲两次吗?那么来加深一下,弟兄们请看。I多录复用就是利用一来实现将连接信息我们red连上去,是不是要client端口号、主机IP等等以及你发的命令放到队列当中,依次再放到事件派发器,由事件派发器将事件也是我们的操作和需要的命令分发给事件处理器。那么弟兄们请看好所有的IO多路复用,还记不记得我们之前讲的这张图?
01:07
左边中间右边说过摆渡车这个动画片,这个案例吧,所以回到这儿,那么落实到底层模型,它是这样的。多个socket连接,一号二号三号,这个才刚刚建连接,这个要写操作,这个要读操作,Socket上来现在。内部操作系统有个调度的优先级,甚至在时间上天生他们就很难统一的,那有先号,那么埃欧多罗复用就像我们刚才所说的,等着啊,谁有准备单招,谁有信号呢?拿过来要把你的诉求装到试卷里面分发给后面,所以弟兄们请看它呢就采用了这个reactor的方式来实现文件事件的处理,也即中间蓝色埃多路复用就是两边对岸的摆渡车,一个一炮函数来搞定两边多条命令的接收和处理,那么每一个网络连接都对应着一个文件描述符,所谓艾欧多罗复用就说通过了这种机制可以监视多个描述符,一旦某个描述符就绪了,我这有信号,能够通知程序进行相应的读写操作这种机制了,就要通过这些来配合多个连接共用。
02:28
一组阻塞对象,应用程序只需要在一个组需对象上等待就行了,无需阻塞所有的等待。当某条链接所有,当某条链接有新的数据可以处理的时候,操作系统通知应用程序线程从阻塞状态返回,开始进行业务业务处理。那么把上面翻译成人话来,所有的艾欧多勒夫药就通过一种考试监考机制啊,一个老师可以监视啊多个考生,一旦某个考生举手想要交卷了。能够通知监考老师进行相应的处理,收卷子也好,或者批改检查操作,这种机制需要调用班主任哎来配合,多个考生被同一个班主任监考,收完一个考试的卷子再处理其他人,无需等待所有考生谁先举手就先响应谁,但又有考生举手要交卷,那么监考老师看到以后,从讲台走到考生的位置上开始进行收卷处理。OK,好,那么同学们,我相信到这应该明白有事件发生了才会驱动往下进行。那么我们的reactor反击模式来,咱们呢,先不看笔记,先看这张图,弟兄们,我给大家十秒钟能看看啥意思啊?看到这张图以后你会想到什么?同学们,这张图请看啊,我们先不看笔记啊,这个就是react反应模型。
03:53
也是艾多罗夫用的思想体现。请看客户端发请求右边这一套应用程序。
04:02
这个呢叫事件接收转发,他像我们的serve一样,然后转发给后台哪个诉求过来,弟兄们,你们觉得这个模型。心想一想,你们在哪见过?学过思考,说人话,这个是不是就是我们恩克斯里面的反向代理?来,多种请求过来了。搁到这儿,统一收集一个人来调度。就像摆渡车一样,把一个个乘客装到摆渡大巴上,送上各个观礼台或者是交通工具上,那么弟兄们最直白的,你今天挨个客户打那个100861个电话,那么10086是不是分配给后面不同的坐席啊?能理解了吗?为什么我们说Linux NX底子?
05:03
底子啊,就是一函数,什么反向大于抵压等等,其实早就有了这些东西,所以各位亲。隔到这儿,那么基于IO互用互用模型,多个连接共用一个阻塞对象,我们现在是不是都是移动、电信或联通的移动客户共用一个组织对象,我就在这听监听着嘛,谁打10086对吧,我呢就服务谁,那么应用程序只需要在一个组项对象上等待,反正10086无需阻塞等待所有的连接,谁找我,我响应谁,当某条连接有新的数据可以处理时,操作系统通知应用程序线程从阻侧状态返回,开始进行业务处理,我这监听着,你好,工号1356为您服务,先生你好,请问有什么可以办理的?需要办理什么业务?这是从主册马上开始进行业务处理。所以对于我们的reactor模式,就是只通过一个或多个输入同时传递给服务器的服务请求的事件驱动处理模型。服务端程序处理转入多路请求并。
06:11
将它们同步分派给请求对应的处理线程,所以注意艾模式也叫分发这样模式,那么也即这种就是IO多的复用的思想。他呢,复用统一监听事件,反正所有移动的客服号都叫10086,收到了各种报账以后就转交给后面的进程,哎,我这是查话费的,我这是什么办宽带业务的,我这是申报注销的等等,是编写高性能网络服务器的必备技术,基于此,弟兄们请看他这有两坨,第一个。Reactor大家看没问题吧,所以reactor在单独的线程中运行。负责监听和分发,就是我们IO多罗夫用的那个摆渡人,分发给适当的处理程序来对IO事件做出反应。他就像公司电话接线员一样,他接听来自客服的电话,并将线路转移到实弹的联系人。
07:08
反应看到了处理,那么处理程序之前IO事件要完成的实际事件,类似于客户想要与交谈的公司中的实际办理人,实办人,这个才是真真正正给你处理干活的。所以艾通过调度适当的处理程序来响应IO事件,所以执行的程序执行的都是非紫色操作。调度以后你去处理吧,玩会儿等待我们的回复,OK,好,所以兄弟们,我们一定要注意现在这个埃欧多罗复用和我们的这个FD啊,理解一下,方便我们后面说源码记着每一个网络连接其实对应着一个文件描述符,我这一搭构上就是所给的网络套接字连接,但操作系统底层就会分配一个文件描述符,你入职以后是要给你办一张员工的胸卡。基于此,弟学们请看在这。Select函数fd fd fd Linux是不是一切皆文件,我有这么多连上了L多的复用,然后呢,文件的事件驱动和分发给我们,最后操作系统来进行相关的处理,OK好了,那么所以我们这儿就会清除它呢,多个套接字哦。
08:21
IO多路复用程序这一套文件的分派。该找谁找谁,最后事件处理,所以因为文件事件分派器的队列消息都是这么单线成的,统一加到这排个队,所以red从命令上也不得不挨个挨个的执行,也就是单线程模型。好,那么同学们对埃欧多罗妇幼它的功能性就给大家介绍到这。
我来说两句