我有ThreadPoolExecutor
运行一些核心和一定的最大线程数。
运行的任务为每个线程创建HornetQ(独立)连接,并在线程运行时使它们保持活动状态。但是,当线程keepAliveTime
到期并且线程死亡时,我们无法关闭它们。有没有办法在线程死之前清理资源?
其中一种方法是使用HornetQ连接的池化解决方案。
非常感谢任何建议。
答案 0 :(得分:0)
如果您使用的是JDK 1.7,则可以在可关闭的界面上嵌入内容,并且只要超出范围就会关闭它。我们正在努力在JMS 2上实现它,但同时你可以嵌入你自己的类委托的东西。你必须在你的线程中的某处保留引用的东西,这样当线程消失时它只会超出范围。 (本地线程可能?)
你需要使用try(statement = statement.open()){}并且会调用auto closeable