ThreadPoolExecutor 目前最常用线程池
//常用构造器
/*
corePoolSize 核心线程数
maximumPoolSize 最大线程容量
keepAliveTime 非核心线程存活时间
TimeUnit (keepAliveTime )的单位,一般为秒
workQueue 工作任务队列 当核心线程数用完时,来访的任务存放的线程任务队列中等候被消费
*/
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue) {
this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
Executors.defaultThreadFactory(), defaultHandler);
}
代码中实操时使用
//1、创建线程池
private final ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 300, 60, TimeUnit.SECONDS, new ArrayBlockingQueue<>(1024));
public void asyncDoMethod(){
//executor.submit(需要异步的内容,完全自定义)
executor.submit(()->this.hello());
}
private void hello(){
System.out.println("hello,this is a asyncDoMethod")
}
能更好的压榨计算机性能