    */
    
    /**
     * A wrapper class that exposes only the ExecutorService methods of an ExecutorService implementation.
     */
    // 【任务执行框架代理】，限制只能执行ExecutorService接口内的方法
    private static class DelegatedExecutorService implements ExecutorService {
        private final ExecutorService e;
        
        DelegatedExecutorService(ExecutorService executor) {
            e = executor;
        }
        
        public void execute(Runnable command) {
            try {
                e.execute(command);
            } finally {
                reachabilityFence(this);
            }
        }
        
        public void shutdown() {
            e.shutdown();
        }
        
        public List<Runnable> shutdownNow() {
            try {
                return e.shutdownNow();
            } finally {
                reachabilityFence(this);
            }
        }
        
        public boolean isShutdown() {
            try {
                return e.isShutdown();
            } finally {
                reachabilityFence(this);
            }
        }
        
        public boolean isTerminated() {
            try {
                return e.isTerminated();
            } finally {
                reachabilityFence(this);
            }
        }
        
        public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
            try {
                return e.awaitTermination(timeout, unit);
            } finally {
                reachabilityFence(this);
            }
        }
        
        public Future<?> submit(Runnable task) {
            try {
                return e.submit(task);
            } finally {
                reachabilityFence(this);
            }
        }
        
        public <T> Future<T> submit(Callable<T> task) {
            try {
                return e.submit(task);
            } finally {
                reachabilityFence(this);
            }
        }
        
        public <T> Future<T>