1

いくつThreadPoolExecutorかのコアと特定の最大数のスレッドを実行するがあります。実行されるタスクは、スレッドごとに HornetQ (スタンドアロン) 接続を作成し、スレッドの実行中に接続を維持します。keepAliveTimeただし、スレッドの有効期限が切れてスレッドが死ぬと、それらを閉じることはできません。スレッドが死ぬ直前にリソースをクリーンアップする方法はありますか?

これを解決する 1 つの方法は、HornetQ 接続にプーリング ソリューションを使用することです。

どんな提案でも大歓迎です。

4

1 に答える 1

0

JDK 1.7 を使用している場合は、クローズ可能なインターフェースに何かを埋め込むことができ、スコープ外になるとすぐにクローズされます。JMS 2 での実装に取り​​組んでいますが、それまでの間、独自のクラス委譲を埋め込むことができます。スレッドのどこかで参照されているものを保持する必要があるため、スレッドがなくなったときにのみ範囲外になります。(ローカルスレッドかも?)

try (statement=statement.open()) {} を使用する必要があり、auto closeable が呼び出されます

于 2013-05-09T16:29:13.347 に答える