【发布时间】:2019-12-10 18:08:39
【问题描述】:
我正在使用Executors.newCachedThreadPool() 来处理客户端 api 请求。当平均 10tps 流量时,java 进程的驻留内存似乎随着时间的推移而增长,并且没有减少。另外在看thread id的时候,也说明线程没有被复用。有什么解决方案。我正在使用 Java 7。
【问题讨论】:
-
也许线程没有被重用,因为执行的实际任务没有完成所以线程没有返回到池中?没有得到更多信息,我们只能猜测。
-
请阅读“如何创建minimal reproducible example”。然后使用edit 链接改进您的问题(不要通过 cmets 添加更多信息)。否则我们无法回答您的问题并为您提供帮助。
-
任何理想的线程都将在闲置 60 秒后收获。如果您在此期间提交任何新任务,该线程将被重用。请提供更多数据。
-
池中的每个线程都向activemq发送消息,似乎去掉activemq消息发送功能后,内存没有增长,线程被重用了。
-
这可能是由于长时间运行的任务,不建议长时间运行的任务缓存池
标签: java threadpool executorservice