快速理解线程池

1.线程池的定义

线程池(thread pool)是一种多线程的处理形式,处理过程中将任务添加进队列,然后在创建线程后自动启动这些线程。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能保证内核的充分利用,耗能防止过分调度。

2.线程池的作用

  • 重用已经创建好的线程,避免频繁创建导致频繁的GC;
  • 控制线程并发数,合理使用系统资源,提高应用性能;
  • 可以有效控制线程的执行,比如定时执行,取消执行等。

3.ThreadPoolExecutor

ThreadPoolExecutor有四个重载的构造方法,我们这里来说说参数最多的那一个重载的构造方法,这样大家就知道其他方法参数的含义了,如下:

public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue workQueue,
                              ThreadFactory threadFactory,
                              RejectedExecutionHandler handler) 

这里是7个参数(较常用的是5个参数的构造方法),下面是七个参数的含义:


corePoolSize  线程池中核心线程的数量

maximumPoolSize  线程池中最大线程数量

你可能感兴趣的:(java程序,java编程,线程池)