public ThreadPoolExecutor(int corePoolSize,<br> int maximumPoolSize,<br> long keepAliveTime,<br> TimeUnit unit,<br> BlockingQueue<Runnable> workQueue,<br> ThreadFactory threadFactory,<br> RejectedExecutionHandler handler)<br>参数解释:<br> corePoolSize - 核心线程数。<br> maximumPoolSize - 最大线程数。<br> keepAliveTime - 临时线程存活的时间。<br> unit - keepAliveTime 时间单位。<br> workQueue - 阻塞队列。<br> threadFactory - 创建线程的工厂。<br> handler - 如果超过最大线程数,的拒绝策略。
unit - keepAliveTime 时间单位。
//Enum TimeUnit<br> //DAYS 时间单位代表二十四小时。<br> //HOURS 时间单位代表六十分钟。<br> //MICROSECONDS 时间单位代表千分之一毫秒。<br> //MILLISECONDS 时间单位为千分之一秒。<br> //MINUTES 时间单位代表60秒。<br> //NANOSECONDS 时间单位代表千分之一千分之一。<br> //SECONDS 时间单位代表一秒。
阻塞队列
LinkedBlockingQueue<br>
ArrayBlockingQueue
拒绝策略
static class ThreadPoolExecutor.AbortPolicy <br> 用于被拒绝任务的处理程序,它将抛出 RejectedExecutionException. <br><br>
static class ThreadPoolExecutor.CallerRunsPolicy <br> 用于被拒绝任务的处理程序,它直接在 execute 方法的调用线程中运行被拒绝的任务;<br>如果执行程序已关闭,则会丢弃该任务。 (让main线程执行多余的任务)
static class ThreadPoolExecutor.DiscardOldestPolicy <br> 用于被拒绝任务的处理程序,它放弃最旧的未处理请求,然后重试 execute;如果执行程序已关闭,则会丢弃该任务。
static class ThreadPoolExecutor.DiscardPolicy <br> 用于被拒绝任务的处理程序,默认情况下它将丢弃被拒绝的任务。