12

我注意到默认的 tomcat 7 线程池大小似乎是 200。

但是普通的 CPU 似乎有 16 个内核。

所以只能并行执行 16 个线程

为什么tomcat使用这么多线程。

4

3 回答 3

5

多年来,许多单核计算机已经出现并且能够以“伪并行”模式运行功能,也就是说,您可能有 16 个线程以真正并行模式运行,而其他线程以伪并行模式运行。

有关更多信息,请查看:并行计算

为了回答您的问题,这些线程对于处理请求很有用,其中一些将用于处理 http 请求,而其他线程将用于调用应用程序逻辑。

于 2013-01-10T02:18:22.163 回答
2

在 200 个线程中,只有 16 个线程在 16 核机器上运行。典型 Web 应用程序的逻辑是执行一些轻量计算和繁重的数据库查询。在 200 个线程中,只有少数在做计算,大部分都在等待数据库的响应。

于 2016-04-26T12:04:37.387 回答
0

大多数现实生活中的 Web 应用程序使用数据库来存储应用程序数据,因此往往是磁盘密集型的。太多线程同时访问磁盘会导致磁盘抖动。因此,限制线程数在具有数据库的 Web 应用程序上确实有意义。

于 2014-11-07T04:28:54.953 回答