All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.buli_home.utils.thread.RejectPolicy Maven / Gradle / Ivy

There is a newer version: 0.3.1
Show newest version
package cn.buli_home.utils.thread;

import lombok.Getter;

import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadPoolExecutor;

/**
 * 线程拒绝策略枚举
 *
 * 

* 如果设置了maxSize, 当总线程数达到上限, 会调用RejectedExecutionHandler进行处理,此枚举为JDK预定义的几种策略枚举表示 * * @author mustard */ @Getter public enum RejectPolicy { /** * 处理程序遭到拒绝将抛出RejectedExecutionException */ ABORT(new ThreadPoolExecutor.AbortPolicy()), /** * 放弃当前任务 */ DISCARD(new ThreadPoolExecutor.DiscardPolicy()), /** * 如果执行程序尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序(如果再次失败,则重复此过程) */ DISCARD_OLDEST(new ThreadPoolExecutor.DiscardOldestPolicy()), /** * 由主线程来直接执行 */ CALLER_RUNS(new ThreadPoolExecutor.CallerRunsPolicy()), /** * 当任务队列过长时处于阻塞状态,直到添加到队列中,固定并发数去访问,并且不希望丢弃任务时使用此策略 */ BLOCK(new BlockPolicy()); /** * -- GETTER -- * 获取RejectedExecutionHandler枚举值 */ private final RejectedExecutionHandler value; RejectPolicy(RejectedExecutionHandler handler) { this.value = handler; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy