目录
目录
DiscardOldestPolicy 放弃机制,放弃列队最早进入的
创建线程池
public static ExecutorService executor = new ThreadPoolExecutor(2,
2, 60L, TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>(3), Executors.defaultThreadFactory(),
// new ThreadPoolExecutor.AbortPolicy()
// new ThreadPoolExecutor.DiscardPolicy()
new ThreadPoolExecutor.DiscardOldestPolicy()
// new ThreadPoolExecutor.CallerRunsPolicy()
);
测试代码
@Test
public void t1() throws InterruptedException {
for (int i = 0; i < 9; i++) {
String finalI = i+"";
try {
ex(finalI);
}catch (RejectedExecutionException e){
System.out.println(finalI+" error = "+e);
Thread.sleep(2);
ex(finalI+" 重新执行");
}
}
Thread.sleep(1000*5);
}
运行线程
public static void ex(String i) throws RejectedExecutionException{
String finalI = i;
executor.execute(new Runnable() {
private String finalC = finalI;
@Override
public void run() {
// System.out.println(Thread.currentTh