java LimitedThreadPool
Posted FrankYou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java LimitedThreadPool相关的知识,希望对你有一定的参考价值。
此线程池一直增长,直到上限,增长后不收缩(因为池子里面的线程是永生的)。这个keepAliveTime参数设置的为Long.MAX_VALUE,所以池子里面的线程几乎不会因为idle而被terminate,也就是说只要线程被创建并放到池子里面永远不会被销毁,永生。
/** * 此线程池一直增长,直到上限,增长后不收缩。 * */ public class LimitedThreadPool implements ThreadPool { public static final int DEFAULT_CORE_THREADS = 0; public static final int DEFAULT_THREADS = 200; public static final int DEFAULT_QUEUES = 0; public Executor getExecutor(URL url) { String name = url.getParameter(Constants.THREAD_NAME_KEY, Constants.DEFAULT_THREAD_NAME); int cores = url.getParameter(Constants.CORE_THREADS_KEY, Constants.DEFAULT_CORE_THREADS); int threads = url.getParameter(Constants.THREADS_KEY, Constants.DEFAULT_THREADS); int queues = url.getParameter(Constants.QUEUES_KEY, Constants.DEFAULT_QUEUES); return new ThreadPoolExecutor(cores, threads, Long.MAX_VALUE, TimeUnit.MILLISECONDS, queues == 0 ? new SynchronousQueue<Runnable>() : (queues < 0 ? new LinkedBlockingQueue<Runnable>() : new LinkedBlockingQueue<Runnable>(queues)), new NamedThreadFactory(name, true), new AbortPolicyWithReport(name, url)); } }
public interface ThreadPool { /** * 线程池 * * @param url 线程参数 * @return 线程池 */ @Adaptive({Constants.THREADPOOL_KEY}) Executor getExecutor(URL url); }
以上是关于java LimitedThreadPool的主要内容,如果未能解决你的问题,请参考以下文章
57 java编程思想——创建窗口和程序片 可视编程和Beans
[Java - 调用WebService]{http://schemas.microsoft.com/ws/2005/05/addressing/none}ActionNotSupported(代码片
flink1.11报错:java.lang.IllegalStateException: No ExecutorFactory found to execute the application(代码片