为什么tomcat默认的线程池大小如此之大?

时间:2013-01-10 02:13:43

标签: java multithreading tomcat

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

  

但普通CPU似乎有16个核心。

所以只有16个线程可以执行paralleld

  

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

3 个答案:

答案 0 :(得分:4)

很长一段时间以来,许多单核计算机已经出现并且能够以“伪并行”模式运行功能,也就是说,您可能有16个线程以实际并行模式运行,而其他线程以伪并行方式运行。

有关详细信息,请查看以下内容:Parallel Computing

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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