The current implementation (v1.6) uses a static timer이므로 실제로는 여러 풀이 하나의 퇴거 스레드 만 사용합니다. (Assuming that they are loaded into the same classloader). jstack
으로 확인할 수 있습니다. 타이머 스레드는 하나뿐입니다.
"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