碰到一个问题,是关于任务处理比较耗时,但是任务之间由先后关系。做了以下方面的尝试。
①建立公有线程池,1个核心线程,长度50的队列,最大线程数为1。用于控制先后。
②使用CompletableFuture实现异步处理,减少用户的操作等待时间。
//工有线程池
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* 单例线程池工具
* @author TonyJoba
* @date 2020/8/27 17:28
*/
public class ThreadPoolSingletonUtils {
//创建私有化静态线程池属性
private static ThreadPoolExecutor threadPoolExecutor = null;
/**
* 获取公有的线程池
* @return
*/
public static ThreadPoolExecutor getThreadPoolExecutor(){
//为null和被shutdown都实例化对象
if(threadPoolExecutor==null||threadPoolExecutor.isShutdown()){
synchronized (ThreadPoolSingletonUtils