直接上代码
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.*;
/**
* 工具类,多线程调用方法处理得到结果集
* @author weigang
* @param <ResultType> 结果集类型(和传参类型保持一致)
* @param <CurrentType> 当前类型,指定调用的是哪个类的哪个方法
* @param <ParamType> 参数类型,使用多线程调用方法的参数
*/
public class MultiThread<ResultType,CurrentType,ParamType> {
private static int cpuNums = 0;
public static int maxThreadNum = 32;
static {
//获取本机cpu个数
cpuNums = Runtime.getRuntime().availableProcessors();
//通过计算公式得到最大线程数
maxThreadNum= (int) ((int)cpuNums*1*1/0.3);
}
/**
* 单个参数
*
* @param <ResultType>
* @param <CurrentType>
*/
static class MultiThreadThree<ResultType, CurrentTy