[源] EvictionTimer - 空闲对象驱逐定时器
[回收机制] EvictionTimer - 提供一个所有对象池共享的"空闲对象的驱逐定时器"

此类包装标准的定时器(Timer)，并追踪有多少个对象池使用它。
如果没有对象池使用这个定时器，它会被取消。这样可以防止线程一直运行着(这会导致内存泄漏)，防止应用程序关闭或重新加载。

此类是线程安全的！

private static Timer _timer：定时器
private static int _usageCount：使用计数追踪器

static synchronized void schedule(TimerTask task, long delay, long
period)：添加指定的驱逐任务到这个定时器。
任务，通过调用该方法添加的，必须调用cancel(TimerTask)来取消这个任务，以防止内存或消除泄漏。

static synchronized void cancel(TimerTask task)：从定时器中删除指定的驱逐者任务。
1. 将任务的状态标记为"取消(CANCELLED)"状态
2. 如果没有对象池使用这个定时器，定时器就会被取消

private static class PrivilegedGetTccl implements
PrivilegedAction<ClassLoader>：获取"上下文类加载器"
private static class PrivilegedSetTccl implements
PrivilegedAction<Void>：设置"上下文类加载器"