public class MyThreadPoolDemo {
/**
* 三种线程池创建方法
* 模拟银行窗口办理业务,顾客定义为10个
*/
ExecutorService executorService;
public static void main(String[] args) {
MyThreadPoolDemo myThreadPoolDemo = new MyThreadPoolDemo();
myThreadPoolDemo.rep(myThreadPoolDemo.three());
}
/**
* 第一种创建方式,创建及声明线程池的个数
*/
public ExecutorService one(){
return executorService = Executors.newFixedThreadPool(5);
}
/**
* 第二种创建方式,只有一个线程
*/
public ExecutorService two(){
return executorService = Executors.newSingleThreadExecutor();
}
/**
* 第三种创建方式,随着业务需求而变大变小
*/
public ExecutorService three(){
return executorService = Executors.newCachedThreadPool();
}
/**
* 业务方法
* @param executorService 不同的声明线程池的方法
*/
public void rep(ExecutorService executorService){
for (int i = 0; i < 10; i++) {
executorService.execute(()->{
System.out.println(Thread.currentThread().getName()+"\t 顾客办理业务");
});
}
executorService.shutdown();
}
}
Java API创建线程池的三种方案
最新推荐文章于 2022-08-04 10:27:41 发布