其他分享
首页 > 其他分享> > 自定义线程池,如何最佳创建线程池

自定义线程池,如何最佳创建线程池

作者:互联网

java有预置线程池:newSingleThreadExecutor,newFixedThreadPool,newCacheedThreadPool,newScheduledThreadPool,newWorkStealingPool。如果不适合,还可以使用ThreadPoolExecutor创建自定义线程池。主要构造方法:

 1 public ThreadPoolExecutor(int corePoolSize,
 2                           int maximumPoolSize,
 3                           long keepAliveTime,
 4                           TimeUnit unit,
 5                           BlockingQueue<Runnable> workQueue)
 6 
 7 public ThreadPoolExecutor(int corePoolSize,
 8                           int maximumPoolSize,
 9                           long keepAliveTime,
10                           TimeUnit unit,
11                           BlockingQueue<Runnable> workQueue,
12                           ThreadFactory threadFactory,
13                           RejectedExecutionHandler handler)

我们接下来介绍参数,其中线程池大小与前四个参数有关。

最佳自定义创建线程池,队列有界,maximumPoolSize有限,使用任务拒绝策略。如果队列无界,服务不了的任务总是会排队,消耗内存,甚至引发内存不足异常。如果队列有界但maximumPoolSize无线,可能会创建过多线程,占内存和CPU。

 

标签:自定义,corePoolSize,创建,maximumPoolSize,队列,任务,线程
来源: https://www.cnblogs.com/ivy-xu/p/12607811.html