线程数太多问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程数太多问题相关的知识,希望对你有一定的参考价值。

我对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

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

答案

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

以上是关于线程数太多问题的主要内容,如果未能解决你的问题,请参考以下文章

asp分页问题,数据库记录数太多,有没有更有效的查询方法,急!!

Mysql连接数不够(报错连接数太多)

线程太多会对服务器有啥影响?

Java线程的上下文切换与线程状态

Mysql连接数太多ERROR 1040 (HY000): Too many connections

maya模型面数太多以至于展UV跑不动怎么办,之前在ZB里刷了