线程池

public ThreadPoolExecutor(int corePoolSize, //核心线程数,超过这个值时要在线程池中等待
                              int maximumPoolSize, //最大线程数,超过这个线程数则执行拒绝策略
                               long keepAliveTime, //活跃线程数大于核心线程数时,空闲的多余线程最大存活时间
                               TimeUnit unit,   //单位
                               BlockingQueue<Runnable> workQueue,//工作队列
                               RejectedExecutionHandler handler) //拒绝策略 
工作原理: 当一个任务进线程池时,首先判断线程池里的核心线程是否都在执行任务,不是(核心线程空闲或者还有核心线程没有被创建)则创建一个新的工作线程来执行任务,否则判断线程池工作队列

是否未满,工作队列没有满,则将新提交的任务存储在这个工作队列,否则判断执行线程是否都处于工作状态,如果没有,则创建一个新的工作线程来执行任务,已经满了,则交给饱和策略来处理这
个任务。

posted @ 2019-03-25 22:55  facker1  阅读(109)  评论(0编辑  收藏  举报