1

我有一个ThreadPoolExecutor运行几个核心和一定数量的最大线程。运行的任务为每个线程创建 HornetQ(独立)连接,并在线程运行时使它们保持活动状态。keepAliveTime但是,当线程到期并且线程死亡时,我们无法关闭它们。有没有办法在线程死亡之前清理资源?

解决这个问题的一种方法是对 HornetQ 连接使用池化解决方案。

任何建议都受到高度赞赏。

4

1 回答 1

0

如果您使用的是 JDK 1.7,则可以在可关闭接口上嵌入内容,一旦超出范围就会关闭。我们正在努力在 JMS 2 上实现它,但同时您可以嵌入自己的类委派内容。您必须在线程中的某处保留引用的内容,这样它只会在线程消失时超出范围。(线程本地也许?)

您需要使用 try (statement=statement.open()) {} 并调用 auto closeable

于 2013-05-09T16:29:13.347 回答