首先创建线程池类ThreadPoolsUtils.java。
public class ThreadPoolsUtils {
private static ExecutorService executor;
private ThreadPoolsUtils() {
}
public static ExecutorService getExecutor() {
if (executor == null) {
synchronized (ThreadPoolsUtils.class) {
if (executor == null) {
executor = new ThreadPoolExecutor(5, 200, 60L, TimeUnit.SECONDS,
new LinkedBlockingDeque<Runnable>(1024), new AbortPolicy());
}
}
}
return executor;
}
}
然后就是使用线程池,将要执行的任务放到线程池中取执行。
xxxServicel 是接口,标红是放到线程池里执行的逻辑。
Future<String> futureTask = executor.submit(new Callable<String>() {
@Override
public String call() {
try {
xxxServicel.dosomething(requestDTO);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
});
ok,这就是简单的创建线程池和使用。