00:00
各位,我们继续分析event loop它的一个过程。前面这个就不说了,对不对,前面呢,它的构造器一系列的怎么怎么找到的,我们就刚才已经说过了,就不再多说。这块就不再多说,我们直接看哪一段代码呢,我们重点就是看他的这个方法。这个方法,那这个方法呢,我们首先对他这几个参数来说明一下。因为它最终会调用到这个方法,把这个方法我们打开一下。把这个方法我们打开一下来,Lawyer。好,这个就太多了啊,那。我放长一点儿。好的,从这开始。好。这样就短很多了,我们就直接,诶这个地方好像没有没有找到对应的地方。往下走。
01:00
这个是不是好,他是。Open。在这里好,我们看一下,最终我们的代码呢,是要到这里来的,其实刚才已经追到这里来了。就是它会在这里。通过这个方法呢,把我们的相关的这个子线程,就是我们的NIO的lo创建起来,那我们来看一下他这几个参数到底是做什么事情的。第一个参数第一个参数代表的是线程数。第二个参数就是X。如果传入一个空,则采用Nike默认的线程工厂和默认的执行器,就是thread per task exec。那么这里面还有一个参数就是。Choose factory它是单立的,它默认情况下会产生一个叫dete event choose factory。那这个阿阿这个参数呢,它是在创建执行器首传输的固定参数,好接着继续往下读取。
02:01
这里啊,这里我们就看指是创建指定线程数的执行器数组。初始化线程。那你现在有几个线程,那么我就初始化说话的时候呢,它是在这里创建六一个n IO lo没问题吧。下面。关闭,如果创建失败,我们就关闭。下面这段代码又说了什么事情呢?往下走,在这里为每个单例线程池添加一个关闭的监听器,也就是这段代码。挖走。在这里。OK,这看到没有,它进行一个for循环,把char这个数组所有的执行器拿出来,也是我们那个线程组。每一个子线程拿出来,然后呢,添加一个监听器。就这样写的。最后再有一个非常重要的动作,将所有单立先成词添加到一个哈希set里面去,我们注意一下这个代码。在这里也就是说他会把所有的这些这个child放到哪里去呢?放到这里面去,我们看这个东西是个什么。
03:07
对,你看这是不是一个link的哈希set。看到没有,是不是放到一个哈塞里面去了,进行管理。所以说下面呢,我这里也对他做了一个说明。接着我们继续来看server。Bootstrap构建、创建和构造过程。那么这个server boot strap,就是我们要分析的是这块代码。跟上我的思路哈。我们要分析一下这段代码。小型面试官问道,就这段代码,它是怎么去构建server boot strip的呢?我们来分析它。首先server strip,我们在调用的时候,这个地方是一个空的,诶那有时候这个空的是什么意思呢?我们注意精确,各位同学可以看到它的确是一个空构件。那就好像没有意义,但是呢,实际上这个server boot strip,它有很多的属性,这些属性是非常之重要的,有些属性大家一看就看出来是干什么的,大家有没有发现有config。
04:08
有char group,这个char group里面就是event group。对不对,也就是说他其实呢,会把我们server端的event loop数,呃,Event loop group进行一个管理,而且呢,他这边还有一个China handler。也可以通过它进行一个管理。好,接着继续。好。我向来记阅读。那么,Server。Server不基本使用。下面代码不说了,我们看首先。它这里是进行一个链式的调用。调的是group方法,将boot和worker传入。Boss传给了。A group worker传给了China group,这个不用说多多说了,往下走,呃,这个China呢,方法会传入这样一个对象。根据class创建char对象。
05:01
所有的option方法会传入TCP相关的参数,并且会放在一个link的哈希迈普进行管理,我们来看一下是不是这样子的。回到我们的源码。主要是看这里。啊,不是我们看到底他把这个参数怎么管理起来的,找一个。同学们可以看到它会把所有参数呢,通过这个方法叫option options to,那么这个option是什么东西呢?大家可以看到,其实就是我们这个。就是同学们看到的这一个。Map。看到没有,也就是说他会把所有的这些相关的参数放在一个map里面去进行一个管理。就这。Handler呢方法传入一个handler中,这个handler只属于serve socket handler而不是serve,它属于server socket channel,而不是属于China的。就是这边不是同学们看到这有handler吗?
06:00
对,就这个handle呢,只跟我们的server socket channel相关。Char handle呢,传输handleer,这个handle将会在每个客户端连接的时候调用,供socket China来使用。好。这是我们。第二。第二一段分析,大家看到理解这个意思哈,好,下面呢,重点来了,就是看看绑定端口是怎么做到的。
我来说两句