java ThreadPoolExecutor线程池源码分析
https://www.jianshu.com/p/edab547f2710
参考线程池源码部分,这里写的还是比较到位的,这里我写一下心得
1、这里关键就是execute接口,我们传进的自己实现的Runnable时候,这里做如下判断
当线程小于corePoolSize的时候直接创建一个线程去处理,
当线程大于corePoolSize的时候,这里分两个步骤处理,
1、BlockingQeue有空间的时候,执行execute的时候会将worker放在BlockingQueue里,
其他线程执行完firstWork的时候,在worker内部类里run 深度调用runTask里有while语句从workerqueue里任务执行
2、BlockingQueue没有空间的时直接拒绝
大致的流程是这样,具体是细节之后再补充,