00:00
各位同学大家好,刚才呢给大家介绍了线程迟道创建方式,咱们创建三种线程池,一池N线程,一池一线程,还有一可扩容线程,包括咱也看到了三个线程池,它们的底层都是六这个对象th po,那我下面呢给大家就来介绍一下这个对象中里边这个参数到底什么含义,它里边一共有七个参数,所以我下面给各位来做个介绍,介绍一下线程池里边七个参数的含义到底都是什么,那下面我们来看一下。首先我把七个参数咱们先复制到一张图上,然后在图上给各位来详细说明一下这七个参数它们的含义到底都是什么,那咱们来一个一个来看一下啊里边的七个参数。我先快速啊给它调整一下,首先我们看里边的第一个参数,这个参数叫做扣扣袋子什么意思啊,扣是不是有核心意思size size是不是有大小意思啊,它就表示啊,你相持里面那个核心的线程数量,或者说叫常住的县城数量。
01:21
这是我们的第一个参数,常驻线程数量,或者说叫核心线程数量。什么叫常驻线程数量呢?举个例子啊,比如说大家注意一个银行里边嘛,在他平时是不是固定开放几个窗口,但是银行窗口可能不都开放,比如说我的银行啊,一共有十个窗口,但是我平时可能最多只开放五个窗口,而五个窗口就叫做常驻建成数量,这是我们的第一个参数。然后这里边有第二个参数,咱看一下这个参数。叫做max po size,这是什么意思啊?就是你那个线程池里边最大的这个线程数量,就是最大支持最多有多少个线程?比如刚才那个例子,银行里边一共有十个窗口,那它最大的形数量是不是就是十哦,平时只说我只开放五个窗口,所以这是第二个参数,最大电容数量。
02:22
然后咱再看第三个和第四个这两个咱们一起来看这个什么意思,看这词keep alivetime是保持存活呀,然后这个叫time union是个单位,它就表示你这里边这个现成的一个存活时间。什么叫存活时间?举个例子啊,比如说我现在我的银行一共有十个窗口,但是我平时最多只开五个,比如说今天呢,我的银行呢,突然来了很多的人,那我五个窗口没法处理这么多业务,那我银行是不是要临时再开放更多窗口,那更多窗口开放之后,把这些业务都处理之后,那这个时候银行可能又恢复到往日的平静中来,那银行在平静状态下,十个窗口不需要都开放吧,那他就可以把多开放的窗口给它再继续关掉,还是恢复到我们这个常驻的断口数量,这个叫存活时间,就是我这个线程多长时间不用,那我这里边就直接把它结束量,就是现成的存活时间,或者说咱说那个银行例子,当我超过了这个。
03:34
常驻前程数量开除了最大的线程数量,而我的最大线程数量一直不用把它再继续进行关闭,这是第三个,第四个,这是一个。值,这是一个单位,比如咱们十秒,20秒或者一分钟等等,这是第三个,第四个参数。然后咱们再看下一个参数,这个参数。这个名字各位应该都见过,Blocking q什么意思,是不是叫阻塞队列呀?那我说一下阻塞队列到底是什么意思一下啊,比如说我现在啊,常驻线程数量已经都用完了,这时候我再来请求,那这些请求就会放到我们的阻塞队列中去进行等待,这是我们的这个参数,这各位知道,一会儿咱们再分析它的执行流程中,这个过程给大家会详细来说,现在各位先知道这几个参数到底都是什么含义。
04:33
然后这个说完之后,咱们再看下一个参数,也就这个参数叫factory。什么意思?是不是叫县城工厂?这个线程工厂,它的作用就是用于创建线程的,这是我们的这个参数,然后除了这个之外,里边还有最后这个参数这个东西。叫这个handle,这是什么意思呢?它就叫做拒绝策略。
05:01
那什么叫拒绝策略呢?给大家解释一下这个场景啊,比如说我现在银行一共有十个窗口,常驻是五个窗口,那这个时候比如说我银行现在啊,常驻窗口已经满了,十个窗口都开放了,并且我现在银行人已经坐满了,那这个时候银行再来新的顾客,银行是不是就没有能力再接收新的顾客呀,那这时候银行会做一个拒绝处理,或者说拒绝策略。什么叫拒绝?比如银行,你进入银行之后,大堂经理看你过来,直接告诉你说现在银行人已经满了,你在这里我们无法为你提供服务,你可以出门到别的银行去处理,我银行就不能接待你的,你找别的银行去办理的业务,这就叫拒绝策略。所以这是关于我们说这个threat po里边的七个参数,如果说咱们要自己写个千程池,那它做法其实很简单,你就可以直接new这个对象。
06:00
然后里边呢,按照咱们的结构传入七个参数最终线程时,我们就可以完成这么一个创建。所以这个是我们提到的里边的这个特点,所以大家把线程池中的七个参数给它要牢牢记住,在七个参数中呢,最后这个参数叫拒绝策略,它里边会有多种拒绝策略,这单位一会儿会做说明,所以现在七个参数给各位就最终介绍完成了,你把七个参数是什么,包括它到底是干什么的给他要牢牢记住。
我来说两句