com.star.concurrent.ExecutorUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of common Show documentation
Show all versions of common Show documentation
some utility class for java develop
The newest version!
package com.star.concurrent;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import com.star.exception.pojo.ToolException;
import com.star.string.StringUtil;
/**
* 线程池工具
*
* @author liushiquan,luxiaolei
*
*/
public final class ExecutorUtil {
/**
* 默认的线程池
*/
private static ExecutorService executor = Executors.newCachedThreadPool();
private ExecutorUtil() {
}
/**
* 线程池中执行线程
*
*/
public static void execute(final Runnable runnable) {
try {
executor.execute(runnable);
} catch (Exception e) {
throw new ToolException(StringUtil.format("thread pool run task failue,the reason is: {}", e.getMessage()),
e);
}
}
/**
* 重启公共线程池
*/
public static void restart() {
executor.shutdownNow();
executor = Executors.newCachedThreadPool();
}
/**
* 新建一个固定大小线程池
*/
public static ExecutorService newExecutor(final int threadSize) {
return Executors.newFixedThreadPool(threadSize);
}
/**
* 获得一个新的线程池
*/
public static ExecutorService newExecutor() {
return Executors.newCachedThreadPool();
}
/**
* 获得一个新的线程池,只有单个线程
*/
public static ExecutorService newSingleExecutor() {
return Executors.newSingleThreadExecutor();
}
/**
* 执行有返回值的异步方法
*/
public static Future execAsync(final Callable task) {
return executor.submit(task);
}
/**
* 新建一个CompletionService
*/
public static CompletionService newCompletionService() {
return new ExecutorCompletionService(executor);
}
/**
* 新建一个CompletionService
*/
public static CompletionService newCompletionService(final ExecutorService executor) {
return new ExecutorCompletionService(executor);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy