• 2024-01-25源码分析:线程池里新增一个线程的流程是什么
    1、先判断新线程是不是为空,为空就报空指针错误否则就往下运行;2、判断是否小于核心线程数,小于则直接新增线程否则就往下运行;3、尝试新增到工作队列中,添加成功就等待调用否则就往下运行;4、再次尝试新增线程,如果当前线程池的线程数大于线程池容量或最大线程数就触发拒绝策略。
  • 2023-07-10线程池addWorker执行流程(添加工作线程)
    1//添加工作线程2privatebooleanaddWorker(RunnablefirstTask,booleancore){3//对线程池状态的判断以及对工作线程数量的判断4//外层for循环的标识5retry:6for(;;){7//获取ctl值8intc
  • 2022-09-23【源码笔记】ThreadPoolExecutor#addWorker
    /***Checksifanewworkercanbeaddedwithrespecttocurrent*poolstateandthegivenbound(eithercoreormaximum).Ifso,*theworkercountisa
  • 2022-09-22【源码笔记】ThreadPoolExecutor#execute
    /***Executesthegiventasksometimeinthefuture.Thetask*mayexecuteinanewthreadorinanexistingpooledthread.**Ifthetaskcannotbesu