import java.util.concurrent.*;/*** @Author : YuanXin
* @create 2024/2/1 11:11
* @Description :*/
public classMain {public static voidmain(String[] args) {
taskListImpl taskList= newtaskListImpl();
String taskJksj=taskList.poolExecutorJksj();
String taskJxdx= null;if (taskJksj.equals("taskJksjSuccess")) {
taskJxdx=taskList.poolExecutorJxdx();
}if (taskJxdx.equals("taskJxdxSuccess")) {
taskList.poolExecutorNbzz();
}
}
}classtaskListImpl {//创建一些任务
int[] taskJksj = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 0};int[] taskJxdx = new int[]{15, 16, 17, 18};int[] taskNbzz = new int[]{101, 102};publicString poolExecutorJksj() {
ThreadPoolExecutor pool=
newThreadPoolExecutor(3,10,3,
TimeUnit.SECONDS,new LinkedBlockingDeque<>(5),
Executors.defaultThreadFactory(),newThreadPoolExecutor.AbortPolicy()
);//ExecutorService cachedThreadPool = Executors.newCachedThreadPool();//ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);
try{for (int i = 0; i < taskJksj.length; i++) {int num =i;
pool.execute(()->{
taskJksjPool(num);
});
}
}catch(Exception e) {throw newRuntimeException(e);
}finally{
pool.shutdown();
}return "taskJksjSuccess";
}public void taskJksjPool(intnum) {
System.out.println(Thread.currentThread().getName()+ " " +taskJksj[num]);
}publicString poolExecutorJxdx() {
ThreadPoolExecutor pool= new ThreadPoolExecutor(3, 10, 3, TimeUnit.SECONDS, new LinkedBlockingDeque<>(5), Executors.defaultThreadFactory(), newThreadPoolExecutor.AbortPolicy());try{for (int i = 0; i < taskJxdx.length; i++) {int num =i;
pool.execute(()->{
taskJxdxPool(num);
});
}
}catch(Exception e) {throw newRuntimeException(e);
}finally{
pool.shutdown();
}return "taskJxdxSuccess";
}public void taskJxdxPool(intnum) {
System.out.println(Thread.currentThread().getName()+ " " +taskJxdx[num]);
}publicString poolExecutorNbzz() {
ThreadPoolExecutor pool= new ThreadPoolExecutor(3, 10, 3, TimeUnit.SECONDS, new LinkedBlockingDeque<>(5), Executors.defaultThreadFactory(), newThreadPoolExecutor.AbortPolicy());try{for (int i = 0; i < taskNbzz.length; i++) {int num =i;
pool.execute(()->{
taskNbzzPool(num);
});
}
}catch(Exception e) {throw newRuntimeException(e);
}finally{
pool.shutdown();
}return "taskNbzzSuccess";
}public void taskNbzzPool(intnum) {
System.out.println(Thread.currentThread().getName()+ " " +taskNbzz[num]);
}
}