告诉闺蜜:Java线程池的内部原理说起线程池,线程池的原理是什么?”我愣了一下,心想闺蜜今天怎么了,怎么突然问这么专业的问题,但身为专业人士,我不能在女朋友面前表现出胆怯,想了想说:“我先给你讲讲我以前同事老王的故事吧!”小伙子升职无望,于是他拿着手里的一些积蓄,回到老家转行创业。他选择了洗浴行业,开了一家洗浴中心,没错,正规的洗浴中心。之前在北京的时候,他喜欢的澡堂去的地方叫“清华池”,想了想,就给自己的洗浴中心取名“线程池”。线程池洗浴中心的线程池开通后,老王发现有客人想做足疗,于是他招聘了一名修脚技师,并增加了一项额外的业务以增加收入。随着修脚顾客的增多,为了赚更多的钱,又招了四名修脚技师。一段时间下来,洗浴中心的生意越来越好,做足疗的顾客也越来越多。然而,老王发现,他店里已经有5个修脚技师了,再招人太多,他也无力支付更多的工资。修脚技师太忙怎么办?老王是个聪明人,立刻想到了一个办法:让顾客排队,如果哪位修脚师做完有空,他就叫另一位排队的顾客继续工作。忙碌的周末到了周末,来洗浴中心的顾客比平时多了好几倍。想要足疗的顾客排队时间太长,顾客已经不耐烦了。老王第一时间反应过来,从其他洗浴中心紧急招募了5名足疗技师,在团队中为顾客做足疗,大大减少了顾客排队的数量。但有时生意火爆,急招技术人员,客户排队的时间也很长。新客户来了,老王只能笑着对客户说:“下次再来,下次给你找个好技术员。”,把客户拒之门外。周末过后,店里养不起闲人,老王就把急招的技术人员全部辞退了。老王的经营方式老王的生意蒸蒸日上,很快就要开分公司,集资上市,走上人生的巅峰。既然如此成功,让我们回顾一下他的经营方式:如果了解老王的经营方式,线程池就不难理解,用任务代替客户,用线程代替修脚技师,线程池洗浴中心就是线程水池。线程池的内部原理是这样的:梦醒,闹钟把我叫醒。原来是一场梦。我怎么可能有女朋友?今天早上有面试,所以我很快起床,洗漱,就出发了。回想路上那个怪梦,先不复习线程池的内部原理!先看ThreadPoolExecutor类的execute方法:publicvoidexecute(Runnablecommand){if(command==null)thrownewNullPointerException();//获取clt,里面记录了线程池状态和正在运行的线程数。intc=ctl.get();//当运行线程数小于核心线程数时,创建线程放入线程池,运行当前任务。if(workerCountOf(c)
