异步线程池
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@Slf4j
public class AsyncExecutor {
private static final ExecutorService executorService;
public AsyncExecutor() {
}
public static void execute(Runnable runnable) {
try {
executorService.submit(runnable);
} catch (Exception e) {
log.error("异步任务失败,e = {}", e.getMessage(), e);
}
}
static {
executorService = new ThreadPoolExecutor(20,
40,
5L,
TimeUnit.MINUTES,
new LinkedBlockingDeque<>(1024),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.CallerRunsPolicy());
}
}
线程池写法,自用