学习笔记 - java线程池ThreadPoolExecutor

某旅游景点的厕所有10个坑,刚好来了十个人站满了

----------

核心线程数corePoolSize=10

这10个人还没上完,另外一个旅游团又来了30个人,大家很遵守纪律,在厕所外面排队,

排到20个人的时候,第21个人不耐烦了,心想轮到我的时候都憋死了,所以队伍只有20人

----------....................

任务队列容量queueCapacity=20

这时候一个善良的当地人来了,对多出来的人说我这里有几个秘密厕所,专门等着排队人数>20的时候才给人使用,你们可以在那里解决,但是秘密厕所只有9个,剩下的一个自己看着办吧

----------....................*********

最大线程数maxPoolSize=10+9=19

最后一个人有4种选择(rejectedExecutionHandler):

1.厕所不上了,拿出手机到处发帖:某某景区连厕所都不让人好好上(AbortPolicy 抛运行时异常)

2.就在厕所外面解决(CallerRunsPolicy 由主线程执行)

3.憋住!(DiscardPolicy 忽略)

4.踢出队列最前面的人,反正都憋这么久了,多等会没事(DiscardOldestPolicy )

猜你喜欢

转载自blog.csdn.net/u012452555/article/details/81304208