/** * @author Joker大雄 * @data 2022/8/25 - 10:37 **/ publicclassTest{ publicstaticvoidmain(String[] args){ User user1 = new User(1,"a",21); User user2 = new User(2,"b",27); User user3 = new User(3,"c",25); User user4 = new User(4,"d",24); User user5 = new User(7,"e",20); // 集合就是存储 List<User> list = Arrays.asList(user1, user2, user3, user4, user5);
// 方法一 直接使用for循环计算 publicstaticvoidtest1(){ Long sum = 0L; long start = System.currentTimeMillis(); for (Long i = 1L; i <= 10_0000_0000; i++) { sum+=i; } long end = System.currentTimeMillis(); System.out.println("sum="+sum+"花费时间="+(end-start)); }
// 方法二 使用ForkJoin计算 publicstaticvoidtest2()throws ExecutionException, InterruptedException { long start = System.currentTimeMillis(); // ForkJoinPool ForkJoinPool pool = new ForkJoinPool(); // 新建任务 ForkJoinTask<Long> task = new ForkJoinDemo(0L, 10_0000_0000L); // 提交 ForkJoinTask<Long> submit = pool.submit(task); // 计算结果 Long sum = submit.get(); long end = System.currentTimeMillis(); System.out.println("sum="+sum+"花费时间="+(end-start)); }
// 方法三 使用并行流计算 publicstaticvoidtest3(){ long start = System.currentTimeMillis(); // 使用Stream并行流 Long sum = LongStream.rangeClosed(0L,10_0000_0000L).parallel().reduce(0,Long::sum); long end = System.currentTimeMillis(); System.out.println("sum="+sum+"花费时间="+(end-start)); } }
ForkJoinPool.commonPool-worker-1supplyAsync->Integer t->null u->java.util.concurrent.CompletionException: java.lang.ArithmeticException: / by zero java.lang.ArithmeticException: / by zero -1