线程数太多问题

问题描述 投票:0回答:1

我对PlayFramework中的线程名称有一些疑问。我在Play上开发了Rest-API服务约5个月。该应用程序只是访问MySQL,并将json格式的数据发送回客户端。我已经理解了'阻塞io'的陷阱,所以我创建了一个用于阻塞io的线程池,并使用阻止线程执行的所有Future块。线程池的定义如下。

akka {
  actor-system = "myActorSystem"


  blocking-io-dispatcher {
    type = Dispatcher
    executor = "thread-pool-executor"
    thread-pool-executor {
      fixed-pool-size = 64
    }
    throughput = 10
  }
}

我检查了日志文件,并确保所有非阻塞逻辑都在名为'application-akka.actor.default-dispatcher-#'的线程下运行,其中

is integer value and that all blocking logics run under thread named

'应用阻挡-IO-调度'。然后我使用'Jconsole'检查了所有线程名称和计数。名为'application-akka.actor.default-dispatcher-#'的线程数始终低于13,'application-blocking-io-dispatcher-#'的线程数始终低于30.但是,总线程数为我的应用程序运行的JVM不断增加。线程总数超过10,000。

有这么多线程,其名称以'default-scheduler-'或'default-akka.actor.default-dispatcher'开头。

我的问题是

一个。 'application-akka.actor.default-dispatcher'和'default-akka.actor.default-dispatcher-'之间有什么区别?

湾线程数增加有什么原因吗?

我想解决这个问题。 这是我的环境。

AS:总是10 Pro。 64位

CPU:Intel(R)Core i7 @ 3.5GHz

内存:64GB

JVM:1.8.0_162 64位

PlayFramework:2.6

RDBMS:MySQL 5.7.21

任何建议将不胜感激。提前致谢。

multithreading playframework dispatcher
1个回答
0
投票

最后我解决了这个问题。有一个错误不会关闭akka的Materializor实例。修改代码后,VM中的线程数保持稳定值。谢谢。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.