提交任务 1.判断核心线程是否已满,未满则创建新线程执行,否则下一步 2.判断工作队列是否已满,未满则添加到队列中等待,否则下一步 3.判断线程池是否已满,未满则创建新线程执行任务,否则按饱和策略处理无法执行的任务 ps任务提交到线程池,优先创建新线程执行,如创建不了,则放进队列中,等待有空闲线程再执行 public ThreadPoolExecutor (int corePoolSize,核心线程数 int maximumPoolSize,最大线程数 long keepAliveTime,线程空闲时最大存活时间 TimeUnit unit,最大存活时间单位 BlockingQueue<Runnable> workQueue,任务队列 ThreadFactory threadFactory,线程工厂用默认的即可 RejectedExecutionHandler handler)线程池和队列都满时的拒绝策略 public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()); } public static ExecutorService newSingleThreadExecutor() { return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>())); } public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); }
线程池7大参数
最新推荐文章于 2024-07-29 18:00:46 发布