java ThreadPoolExecutor线程池源码分析

线程池源码分析


https://www.jianshu.com/p/edab547f2710

参考线程池源码部分,这里写的还是比较到位的,这里我写一下心得

1、这里关键就是execute接口,我们传进的自己实现的Runnable时候,这里做如下判断

java ThreadPoolExecutor线程池源码分析_第1张图片

当线程小于corePoolSize的时候直接创建一个线程去处理,

当线程大于corePoolSize的时候,这里分两个步骤处理,

1、BlockingQeue有空间的时候,执行execute的时候会将worker放在BlockingQueue里,

其他线程执行完firstWork的时候,在worker内部类里run 深度调用runTask里有while语句从workerqueue里任务执行

2、BlockingQueue没有空间的时直接拒绝


大致的流程是这样,具体是细节之后再补充,

你可能感兴趣的:(java)