1

GenericKeyedObjectPool非同期アイドル オブジェクトの削除を有効にしたアプリケーションで複数のスレッドを使用している場合、バックグラウンドで実行される "アイドル オブジェクトの削除" スレッドはいくつですか?

複数GenericKeyedObjectPoolの がエビクション スレッドを 1 つだけ作成しますか?それともプールごとに個別のスレッドを作成しますか?

4

1 に答える 1

0

現在の実装 (v1.6) は static timerを使用するため、実際には複数のプールが 1 つのエビクション スレッドのみを使用します。(それらが同じクラスローダーにロードされていると仮定します。) で確認できます。jstackタイマー スレッドは 1 つだけです。

"Timer-0" daemon prio=10 tid=0x7bce5000 nid=0x1ca5 in Object.wait() [0x7b23d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0xa26c0fe8> (a java.util.TaskQueue)
    at java.util.TimerThread.mainLoop(Timer.java:509)
    - locked <0xa26c0fe8> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)

   Locked ownable synchronizers:
    - None
于 2012-11-11T22:34:17.977 に答える