TOmcat
·
springboot 默认是用 tomcat
1.tomcat
这里并发为什么是 200,我们可以调整?
- 因为 tomcat 线程池类似 Java 线程池,但有一定区别,会先创建非核心线程后再放入队列中。
- 我们可以通过调整 最大线程数来 控制并发数量
如果并发数小于 200 或者大于 200 是如何表现?(默认配置下)
- 小于 200 会创建核心线程和非核心线程立即处理任务,大于 200 的任务会放入等待队列中
core----max----queue
2. undertown
- 可以看到默认会根据机器可用的 CPU 数 * 8 计算一个 workerThreads 作为最大线程数和核心线程数,我电脑的 CPU 数为 8,因此最大线程数和核心线程数都为 64。
- 同时,线程池基于 Java 线程池实现,因此当等待队列未满时使用仅使用核心线程池。
core----queue---max
3.java的线程池
-
当提交一个新任务到线程池时,如果当前运行的线程数小于
corePoolSize
,则创建新线程来处理任务(即使有空闲的核心线程)。 -
如果运行的线程数等于
corePoolSize
且WorkQueue
未满,则任务被放入WorkQueue
中等待。 -
如果
WorkQueue
已满,且运行的线程数小于MaximumPoolSize
,则创建新线程来处理任务。 -
如果
WorkQueue
已满且运行的线程数等于MaximumPoolSize
,则根据RejectedExecutionHandler
策略来处理此任务。
core----queue---max
更多推荐
已为社区贡献1条内容
所有评论(0)