00:00
各位,我们继续往下追好。我们继续往下追,这个方法呢,我们可以追到这个地方来,在这个地方会看到什么东西呢?它会进入进入到一个叫REGISTER0这么一个方法。追零个零方法就进行一个wrong方法了,那么继续,呃,如果继续往往下追呢?下面的方法就会执行管道中可能存在的任务,这里我就不注意了,也就说我们可以可以追到这一个方法,其实刚才同学们已经看到了,就这。是不是如果往里面再往里面放一下就到这来了,那我们再往里面去一下走。进去。嗨,大家有没有看到它实际上是next。这个next会做什么事情,同学们?那会做什么事情呢?那么我们看一下,如果我进到这个next,你们一看就明白了,精确。哎,是不是他又调用这个super。他从这个super调一个next,我们再到这个next里面再去追一下。
01:01
哎,出是不是用一个出,就是选择器再调一个next再进去。OK,你看这边是干什么事情呢?看懂了没有?哦,一下就明白了,这哥们从你的这一个执行器数组里面找了返回了一个event。Execu执行器,而这个执行器其实就是我们的这一个,刚才同学们看到的这个里边的某一个东西,这现在不在这了啊,就是我们那个worker group下面一个子线程,子线程的某一个,能理解我的意思吧,就他在这就返回,那返回就返回吧,我们让它。返回一下。就我就直接返回。是不是再返回。再返回。诶,实际上这个next呢,就返回这么一个东西了。啊,这个地方大家看。这个时候就返回了,嗯,就是这地方这个next就会返回一个,就是我们所说所说的loop,然后register啊继续往下追,那现在再往里面追,它就会进入到register方法,这个能理解吗?同学们。
02:11
啊,我说了,大家要有一点追源码的经验啊,要说这块一点都不清晰的话,可能听起来有点压力,好,我进去了。我现在就进入到register,好,这个register里面呢,它会把你拿到这个China再进行一个包装,包装成一个叫default channel promise没问题吧。好,那继续追进去。好,我们继续追进去。好,那这个呢,我就返回。我就返回,再进去就进入到register了。这register,这还没完呢,还得听到这个register。对不对,还得进到这个register好,下一步来继续走。那这地方要要掉好几次的啊呃,第一次进去。到China返回。再精确到unsaf返回。
03:00
这次再进去才进入到这个真正的方法进去吧,朋友们进了啊。哎,同学们看,此时此刻我们才注意到我们这要的方法。说这个追源代码呢,同学们,呃,要有这样的经验好不好?好,这里面呢,真正干这个活的是在这儿。这个地方,我下个断点,直接奔这儿来。啊诶,他怎么到这来了啊,这这地方可能要跑几遍啊,跑几遍再来。哦,你看这个就返回了。啊,你看这个地方下面就有一个返回,因为我这是网页的,这还不太好追啊,不太好追。好,那现在呢,我就我就说到这个地方接着继续往下看吧,那到这个地方呢,我们待会直接在这下个断点。在这个地方最终会调到do begin read,这个do do begin read呢,就是在这个abstract IO China这个类方法里面去,那这地方它有相关的操作了,如果我们到这里,好,同学们在这个地方调试,在这个地方呢,就代表我们什么事情已经完成了,就是在这儿执行,到这的时候,针对于整个客户端的连接经完成了,接下来就可以监听读的事件了。
04:15
叫大家看的出来吗。你看他做什么事情?都已经到这都拿到了3K了,呃,如果这个是无效的,呃,就返回,如果是有效的,干什么事情呢?大家看是不是在这里。该干什么事情呢?做我们相听的,相应的监听读的事情,就是这个这个event loop就是你,你相当于说。嗯,我不知道怎么去表达哈。相当于说还得用这个图来来带一下。相当于这个哥们儿。还回到这边。相当于说你这个事情已经到哪了呢?把这个事情给了他了,OK,这个疑问都选好了,他又开始。这叫循环减,听明白我的意思了吧,好同学们,那这段代码的一个追就到这儿,那这样子我们还是给大家演示,确实追到这儿了哈。
05:08
确实到这儿来了。那这样子我们把前面已有的断点先去掉。把优端的全部一次性的拿掉。拿掉过后呢,我们再把断点下载。我需要看的位置好吧。然后我把断点直接扔这,大家看会不会进入到do begin read OK,那读read呢?最后它会进行在这里进行监听相应的事件,好的同学们,读写事件上就是我来仍然是一个第第八个没问题啊,同学们。能跟上我的思路吗?好,我用,诶这地方是因为被关闭吧,可能是。前面有一个没有关闭,所以说你再次启动呢,端口就会被怎样占用了。跑起来。八戒过后,朋友们来吧。走起来。好,同学们可以看到这时呢,它就直接到这来了,往下走对不对。
06:04
对不对,诶你看。是不是就开始做他的事情呢?做他相关的事情,好,这就是我们这块代码的一个追踪,追踪,大家看能否理解哈。能否理解好的,那关于这一块第二部分的源码的追踪,我们就讲到这里。
我来说两句