什么是线程池?
内存中的一块空间,空间里存放着已经实例化好的线程对象.
当需要使用线程时直接从线程池中去取,当代码中线程执行结束或者销毁时,把线程重新放入线程池,而不是让它处于死亡状态.
优点
-
降低系统资源消耗。通过重用线程对象,降低因为新建和销毁线程产生的系统消耗。
-
提高系统响应速度。直接从内存中获取线程对象,比新建线程更快。
-
提供线程可管理性。通过对线程池中线程数量的限制,避免无限创建线程导致的内存溢出或CPU资源耗尽等问题。
缺点
默认情况下,无论是否需要使用线程对象,线程池中都有一些线程对象,也就是说会占用一定内存。
Executor关系图
自定义线程池
public ThreadPoolExecutor(int corePoolSize,
int maximumP