小编sko*_*pyo的帖子

处理器线程、Tomcat 线程、Java 线程

谁能解释一下处理器线程、tomcat线程和Java线程之间的区别以及它们之间的关系?

据我所知: 处理器有一定数量的核心。如果我有一台双核机器,它将为我提供 4 个线程。Tomcat 也有许多线程(默认值为 200),Java 也可以有许多线程,每次需要时都可以创建线程,也可以从可以配置的线程池中获取线程池。

我对调用端点时发生的情况的理解是这样的(假设我有双核 -> 4 个线程):

  1. 我拨打“/myEndpoint”
  2. 我的调用将使用处理器线程之一 -> 处理器线程将请求发送到 Tomcat 的线程之一 -> 这也会将该请求发送到 MyApplication 的主线程
  3. 我的应用程序有以下选项:自行解决请求并将答案返回给 Tomcat 线程,Tomcat 线程又将其返回给处理器线程。b. 将请求发送到我创建的线程之一我配置的 ThreadPool 中的线程之一,等待答案并将答案发送回 Tomcat 线程,Tomcat 线程又将其返回到处理器线程。此时第一个问题是:createByMe / threadPoolThread线程是否使用其他 3 个可用的处理器线程之一?(我的逻辑说是)

当我开始同时考虑大量请求时,问题就出现了:

  1. 300 人拨打“/myEndpoint”
  2. 由于我的处理器只有 2 个核心(4 个线程),我猜它一次需要 4 个请求,剩余的 296 个请求被放入某种队列中,直到前 4 个请求被处理为止。
  3. 这四个请求被发送到 Tomcat,Tomcat 还将它们进一步发送到 Java 应用程序。此时第二个问题是:如果我的应用程序的主线程将请求发送到createByMe / threadPoolThread线程,那么该线程应该如何工作,因为我的处理器的所有 4 个线程都在步骤 2 中使用?

我在这里和其他页面上阅读了很多问题,但没有找到一些东西来展示请求的完整生命周期(或者至少使其更清晰)以及多个请求的一些示例(300 个请求示例)具有较少数量的处理器线程) (processorThread -> TomcatThread -> JavaThread -> TomcatThread -> handlerThread ) …

java multithreading tomcat processor threadpool

1
推荐指数
1
解决办法
1088
查看次数

标签 统计

java ×1

multithreading ×1

processor ×1

threadpool ×1

tomcat ×1