频繁的创建和销毁线程会浪费大量的系统资源,增加并发编程的风险,另外,在服务器负载过大时,如何让新的线程等待或者友好的拒绝服务,这些都是线程自身无法解决的,所以需要线程池来协调多个线程
《阿里巴巴Java开发手册》中强制线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险
首先从从ThreadPoolExecutor(java.util.concurrent包下)构造方法讲起,先来看看参数最多的这个构造函数
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler) {
}可以看到启动程序时发现是进入了创建线程池的方法

通过断点可以看到创建线程池的类是TCPTransport

静态代码块:静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码块以及构造函数
