线程池的常用接口

//Executor 顶级接口
//ExecutorService/ThreadPoolExecutor
//ScheduledExecutorService/ScheduledThreadPoolExecutor
//Executors 线程池的静态工厂
/*ExecutorService ex = Executors.newSingleThreadExecutor();
Thread t1 = new MyThread();
Thread t2 = new MyThread();
Thread t3 = new MyThread();
Thread t4 = new MyThread();
Thread t5 = new MyThread();
ex.execute(t1);
ex.execute(t2);
ex.execute(t3);
ex.execute(t4);
ex.execute(t5);
//关闭线程池
ex.shutdown();*/

举例:

package com.vcredit.framework.utils;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class ThreadUtils {
/**
* 线程池
*/
private static final ExecutorService es = new ThreadPoolExecutor(10, 15, 1000, TimeUnit.SECONDS,
new ArrayBlockingQueue<Runnable>(1000),
new ThreadPoolExecutor.CallerRunsPolicy());

/**
* 异步执行
*
* @param runnable
*/
public static void async(Runnable runnable) {
es.execute(runnable);
}
}

//启用线程异步执行:

ThreadUtils.async(new Runnable() {
@Override
public void run() {
try {
//手机详单成功后,调用决策系统
if(null !=newOrOld && "0".equals(newOrOld)){
decisionHelper.decisionOfOld(decisionParam, false);
}else{
decisionHelper.decisionOfNew(decisionParam, false);
}
} catch (Exception e) {
logger.error("decision fail", e);
}
}
});

原文地址:https://www.cnblogs.com/muliu/p/6485549.html