package PracticeJavaHighConcurrency.chapter3; import java.util.concurrent.*; /** * Created by 13 on 2017/5/5. */ public class RejectThreadPoolDemo { public static class MyTask implements Runnable { @Override public void run() { System.out.println(System.currentTimeMillis() + ":Thread ID:" + Thread.currentThread().getId()); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String args[]) throws InterruptedException { MyTask myTask = new MyTask(); ExecutorService executorService = new ThreadPoolExecutor(5, 5, 0L, TimeUnit.SECONDS, new LinkedBlockingDeque(10), Executors.defaultThreadFactory() , new RejectedExecutionHandler() { @Override public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { System.out.println(r.toString() + " is discard"); } }); for (int i = 0; i < 100; i++) { executorService.submit(myTask); Thread.sleep(10); } } }