RejectedPolicy--DiscardOldestPolicy

来源:互联网 发布:值乎下载 编辑:程序博客网 时间:2024/03/29 03:45
package com.jerry.concurrency;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;public class TestRejectedPolicy {public static void main(String[] args) throws InterruptedException {ThreadPoolExecutor pool = new ThreadPoolExecutor(1, 1, 0, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(1));//设置线程池只启动一个线程 阻塞队列一个元素pool.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy());//设置策略为挤掉最旧的for (int i = 0; i < 10; i++) {final int  j = i;pool.submit(new Runnable() {public void run() {System.out.println("线程:"+j + Thread.currentThread().getName()+"  开始执行");try {Thread.sleep(1000L);} catch (Exception e) {e.printStackTrace();}System.out.println("线程:"+j + Thread.currentThread().getName()+"  执行完毕");}});}Thread.sleep(5000L);pool.shutdown();System.out.println("关闭后线程终止了吗?" + pool.isTerminated());}}

原创粉丝点击