创建线程池,每次使用线程时在map中查询一下线程池是否存在,如果存在,就从此线程池中获取线程,如果不存在,就要创建一个线程池,放进map中,再从中获取一个线程:
//线程池类
public class CachedThreadPool{
Map<Sring,ExecutorService> executorServices = new HashMap<>();
public ExecutorService ThreadPool(String appid){
if(executorService !=null){
return executorService;
}else{
executorService = new ThreadPoolExecutor(38,800,60,TimeUnit.SECONDS,new ArrayBlockingQueue<Runnable>(100))
executorSercices.put(appid,executorService);
}
return executorService;
}
}
//创建线程池对象
ExecutorService service = cachedThreadPool.ThreadPool(appid);
// 从中获取一个线程,执行任务. 并返回submit返回值
Future submit = service.submit(new VerifyThread(url,askMap))
获取返回值内容:
s = submit.get();