blic ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) {
            return e.schedule(command, delay, unit);
        }
        
        public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) {
            return e.schedule(callable, delay, unit);
        }
        
        public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
            return e.scheduleAtFixedRate(command, initialDelay, period, unit);
        }
        
        public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
            return e.scheduleWithFixedDelay(command, initialDelay, delay, unit);
        }
    }
    
    // 【Finalizable任务执行框架代理】
    private static class FinalizableDelegatedExecutorService extends DelegatedExecutorService {
        FinalizableDelegatedExecutorService(ExecutorService executor) {
            super(executor);
        }
        
        @SuppressWarnings("deprecation")
        protected void finalize() {
            super.shutdown();
        }
    }
    
    
    /**
     * A callable that runs given task and returns given result.
     */
    // 包装Runnable任务
    private static final class RunnableAdapter<T> implements Callable<T> {
        private final Runnable task;
        private final T result;
        
        RunnableAdapter(Runnable task, T result) {
            this.task = task;
            this.result = result;
        }
        
        public T call() {
            task.run();
            return result;
        }
        
        public String toString() {
            return super.toString() + "[Wrapped task = " + task + "]";
        }
    }
    
    /**
     * A callable that runs under established access control settings.
     */
    // 包装Callable任务，使用上下文访问权限控制器
    private static final class PrivilegedCallable<T> implements Callable<T> {
        final Callable<T> task;
