/*** 1、业务场景 *1、定时执行时,可能出现数据量大,执行不完,线程直接被终止掉,丢数据。*/import java.util.ArrayList;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/*** 1、首先创建线程池,针对线程池开启多个线程。* 2、for循环开始线程调用。* 3、线程执行完成终止掉线程。*/public class ForLoopMultiThreading { public static void main(String[] args) { // 创建一个ExecutorService,用于管理线程 ExecutorService executorService = Executors.newFixedThreadPool(5); // 创建一个List,用于存储for循环的结果 List resultList = new ArrayList(); // 定义for循环的起始和结束值 int start = 0; int end = 100; // 创建一个for循环,用于计算0到100之间的所有整数 for (int i = start; i { // 在这个线程中执行for循环 for (int j = start; j <= end; j++) { System.out.println("Thread: " + Thread.currentThread().getName() + ", i: " + i + ", j: " + j); } }); } //慎用:存在数据量大执行不完,直接关闭线程池,数据丢失。 根据业务场景自定义 //如果线程内部报错,直接终止线程。按照定时任务执行的,定时执行五分钟一次。 try { if (!executorService.awaitTermination(300, TimeUnit.SECONDS)) { // 如果任务在300秒内仍未完成,强制关闭线程池 executorService.shutdownNow(); } } catch (InterruptedException e) { // 捕获异常,并强制关闭线程池 executorService.shutdownNow(); e.printStackTrace(); } // 关闭ExecutorService executorService.shutdown(); // 输出for循环的结果 System.out.println("Result List: " + resultList); }}