Java线程池难嘛?一张图读懂源码

1、创建一个线程池

image

2、分析线程池执行情况

image

So easy!

corePoolSize:如果任务超过,固定运行5个线程这5个不会释放

linkedBlockingQueue:如果任务超过5个,比如1005个任务。这时候有5线程在corePoolSize跑,另外1000个被缓存在Queue里面等待运行

maximumPoolSize:如果任务超过1500 + 5 + 10. 比如1515,这时候5个任务在corePool里面,1500个在Queue里面,另外10个当成普通线程运行。

如果任务超过1515,比如1516;最后一个线程直接抛错

posted @ 2022-06-17 17:59  SArtOnline  阅读(23)  评论(0编辑  收藏  举报