1、在使用execute()方法提交一个runnable对象时,判断当前线程池中的线程数是否小于corePoolSize;
2、如果小于,会创建新的线程执行runnable;
3、如果大于等于,则尝试将runnable对象加入到workQueue;
4、若workQueue没满,则runnable正常入队,等待执行
5、若workQueue满了,则尝试增加新的线程
6、如果当前线程池中的线程数小于maximunPoolSize,创建新的线程并执行任务
7、如果大于等于则执行拒绝方法,拒绝此runnable
扩展:线程池的创建方式有两种
- 通过Executors自动创建
- 通过ThreadPoolExecutor手动创建
线程池拒绝策略实现了4种
默认使用的是AbortPolicy
关键词:corePoolSize,maximumPoolSize,workQueue,workerCount
人的一生,总是难免有浮沉。不会永远如旭日东升,也不会永远痛苦潦倒。反复地一浮一沉,对于一个人来说,正是磨练。因此,浮在上面的,不必骄傲;沉在底下的,更用不着悲观。必须以率直谦虚的态度,乐观进取向前迈进。