下面是几个Java线程池的问题,大家尝试回答一下:
1 使用线程池比手动创建线程好在哪里?
2 线程池的各个参数的含义?
3 线程池有哪 4 种拒绝策略?
4 有哪 6 种常见的线程池?什么是 Java8 的 ForkJoinPool?
5 线程池常用的阻塞队列有哪些?
6 为什么不应该自动创建线程池?
7 合适的线程数量是多少?CPU 核心数和线程数的关系?
8 如何根据实际需要,定制自己的线程池?
9 如何正确关闭线程池?shutdown 和 shutdownNow 的区别?
10 线程池实现“线程复用”的原理?
Q1:使用线程池比手动创建线程好在哪里?
A1.1、复用线程以降低资源消耗
降低创建、消耗线程都要消耗系统资源(CPU、内存)
A1.2、提高响应速度
任务到达时不需要临时创建线程
A1.3、提升线程的可管理性
线程代表着CPU和内存消耗,线程池管理(统一分配、调优、监控)了线程也就管理了CPU和内存消耗