⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trackingexecutor.java

📁 java concurrency in practice 源码. JAVA并发设计
💻 JAVA
字号:
package net.jcip.examples;import java.util.*;import java.util.concurrent.*;/** * TrackingExecutor * <p/> * ExecutorService that keeps track of cancelled tasks after shutdown * * @author Brian Goetz and Tim Peierls */public class TrackingExecutor extends AbstractExecutorService {    private final ExecutorService exec;    private final Set<Runnable> tasksCancelledAtShutdown =            Collections.synchronizedSet(new HashSet<Runnable>());    public TrackingExecutor(ExecutorService exec) {        this.exec = exec;    }    public void shutdown() {        exec.shutdown();    }    public List<Runnable> shutdownNow() {        return exec.shutdownNow();    }    public boolean isShutdown() {        return exec.isShutdown();    }    public boolean isTerminated() {        return exec.isTerminated();    }    public boolean awaitTermination(long timeout, TimeUnit unit)            throws InterruptedException {        return exec.awaitTermination(timeout, unit);    }    public List<Runnable> getCancelledTasks() {        if (!exec.isTerminated())            throw new IllegalStateException(/*...*/);        return new ArrayList<Runnable>(tasksCancelledAtShutdown);    }    public void execute(final Runnable runnable) {        exec.execute(new Runnable() {            public void run() {                try {                    runnable.run();                } finally {                    if (isShutdown()                            && Thread.currentThread().isInterrupted())                        tasksCancelledAtShutdown.add(runnable);                }            }        });    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -