00:00
好,同学们,我们继续。这个刚才讲的第一遍,待会讲第二遍,甭着急,要拿代码演示才能给你看清楚这四种。但是至少刚才第一讲,你先给我背下来四大策略。下面的问题是。你在工作中有单机的。也就是说,兄弟们。根据刚才我们的讲解哈。固定数的。单一的和带缓存扩容的。请问。你们认为你要是用过线程池。你在工作中用哪一个?根据刚才我们讲的这三大特性,同学们可以课堂上展开一下讨论。那么刚才呢,有同学三种呢,都有同学选择哈,那么听好这个就是看你有没有用过线程池。你在工作中如果你用过,你一定不能答错这个题目,你只要一答错,你假设你去拉产本身你可以应聘到P6,马上级别就降到P5了。
01:05
那这个时候正确答案是一个都不用。露吧。这个时候呢,你可能会反驳杨哥了。工作中的话呢,这三个没错吧。你用哪个,这有个超级大坑。结论是一个都不用。为什么呢?你可能就不服了,反驳我。这哥们儿是不是GDK周玉君给你提供的?但是呢?没办法,大神写的那个也是偏向于什么。知识。精华。生产实践和科学技术是两回事,大家同意吧。我们回过头去再看一次源码再解决。
02:03
哈。答案。在这儿呢?我们讲过一个问题。这个第五个参数是不是叫阻塞队列,那么为什么一个都不用呢?这不是我说的。阿里巴巴开发手册。因为他们出自于生产实践。那么这个时候的话呢,我们呢,直接来看一下打开怎么这么慢。无所谓了,刚好呢,干嘛呢。注意啊,他现在是要1.4版了啊,以这个版本为主,它后面更新了很多我们E。5月20号的,那么干嘛呢,我们找到。并发。这个不是杨哥胡说八道,这是阿里敢公开的,整个github上面基本上慢慢都按照这个手头来,因为。
03:06
理想丰满,现实骨感,理论上嘴巴上说你也说不服我,我也说不服你,但是阿里他由于天猫系统他干了,验证这个正确的理论,拿到生产上却得到了一个错误的实践,理由是干嘛。并发,那么所以说一个都不需要,请看。线程资源必须通过线程池提高。不允许在应用中自行显示的创建,也就是new start.start不去写,要不用线程池,那你说杨哥你写那么爽,那是我在学校听懂了吗?废话,我们,我一开始给你讲线程时,你不就疯了,我只能new start好,接下来干嘛呢?线程池啊,不允许使用exacts去创建,而要通过thad pro的方式,这样的处理方式让同学们更加明确运行规则,巴拉巴拉,拉拉巴拉。理由请看,因为你允许的队列长度in t max可能会堆积大量的请求,从而导致oom。
04:07
我们讲过了,刚才我们你要是现在读懂这句话,以后我们讲过抬头重点。一开始是不是叫call啥意思啊。这是基础的,今天值班的这个受理窗口。如果你现在。你敢这么玩?大哥。底层这是link的,Link的是链表,我们讲过了,这个是不是一个。无界的阻塞队列什么叫无界?其实它是有界,但是它那个界是多大?Int加的MAX21页,那么接近无限,那么这就变成什么来的请求不停的就往这个阻塞堆里面加,加加加加加,我靠,你见过哪个银行的候客区有21亿把椅子等着啊,比中国人还多。那么这事儿干嘛分分招?来的顾客如果哗涌上来,瞬间就把你的堆给充满了。
05:01
再强的服务器也扛不住21亿这么干,那么这时候干嘛?那比中国人还多啊。干嘛?就会堆积大量的请求,从而导致什么oom。所以说同学们,它接力配置三种一个都不要。首先不允许在应用中自行显示,创建线程都要用线程池,第二个线程池不允许用这个来创建,需要你自己什么手写线程池。所以说你去面试啊,人家马上问你,最终你就算是那个前面那几点你全答对了,嗯,他只能说这小子啊。没有丧失学习能力,日常工作当中除了能敲代码,也有思考。这种人他还读得进去书,他不是学渣,他没有丧失学习能力。但是抱歉。这波技术底子不错,但是他更关心的是问你的是什么工程实践经验,你说我用了哪个哪个exactly的,一般都会答这个,如果没有答,哦,我们都不用,一个都不用,基本上都是要用手写。
06:05
这个。不答这个,人家根本不相信你用过。级别一下子就从P6降到P5了。所以说干嘛这些东东不是我胡说八道,是阿里在工程经验上的总结。那么他们在里面都要手写好,那么当然这个你也不用担心,那你说那杨哥我去公司不是天天手写线程程,你想多了行写什么六号船的加大电流,听懂了吗?你想多了都有里面的基础架构部架构师给你写好,你直接调,但是道理你要懂。那么这个。就是我们的什么呢?线程池啊,为什么不能用it什么一个解释。
我来说两句