Java并发编程是大厂第一轮面试中的高频面试题,而线程池又是其中的典型代表,本文将梳理关于线程池的工作机制,并提出灵魂之问:你对线程池的工作机制这么了解,那你在工作中是如何判断一个线程池需要创建多少个线程的呢?
JAVA 线程池的核心属性如下:
那当用户向线程池提交一个任务的时候,线程池会如何创建线程呢?




量。
那我们怎么判断需要增加更多线程呢? 其实可以用jstack命令查看一下进程的线程栈,如果发现线程池中大部分线程都处于等待获取任务,则说明线程够用,如下图所示:

如果大部分线程都处于运行状态,可以继续适当调高线程数量。