• java项目利用线程池,同时执行多个需求,返回数据,加快速度


    使用线程池还是挺快的,提升了50%左右

    1. package com.quxiao.controller;
    2. import com.alibaba.fastjson2.JSON;
    3. import lombok.Data;
    4. import java.util.*;
    5. import java.util.concurrent.CompletableFuture;
    6. import java.util.concurrent.ExecutorService;
    7. import java.util.concurrent.Executors;
    8. /**
    9. * @program: package1
    10. * @author: quxiao
    11. * @create: 2023-09-11 15:10
    12. **/
    13. public class t2 {
    14. public static void main(String[] args) {
    15. // long l = System.currentTimeMillis();
    16. // for (int i = 0; i < 10; i++) {
    17. // check();
    18. // }
    19. // System.out.println("顺序执行耗时:" + (System.currentTimeMillis() - l));
    20. ExecutorService executor = Executors.newFixedThreadPool(10);
    21. long l = System.currentTimeMillis();
    22. //顺序执行耗时:11600
    23. CompletableFuture async1 = CompletableFuture.supplyAsync(() -> check(), executor);
    24. System.out.println("1");
    25. CompletableFuture async2 = CompletableFuture.supplyAsync(() -> check(), executor);
    26. System.out.println("1");
    27. CompletableFuture async3 = CompletableFuture.supplyAsync(() -> check(), executor);
    28. System.out.println("1");
    29. CompletableFuture async4 = CompletableFuture.supplyAsync(() -> check(), executor);
    30. System.out.println("1");
    31. CompletableFuture async5 = CompletableFuture.supplyAsync(() -> check(), executor);
    32. System.out.println("1");
    33. CompletableFuture async6 = CompletableFuture.supplyAsync(() -> check(), executor);
    34. System.out.println("1");
    35. CompletableFuture async7 = CompletableFuture.supplyAsync(() -> check(), executor);
    36. System.out.println("1");
    37. CompletableFuture async8 = CompletableFuture.supplyAsync(() -> check(), executor);
    38. System.out.println("1");
    39. CompletableFuture async9 = CompletableFuture.supplyAsync(() -> check(), executor);
    40. System.out.println("1");
    41. CompletableFuture async10 = CompletableFuture.supplyAsync(() -> check(), executor);
    42. System.out.println("1");
    43. //确认所有的数据都已经处理完了
    44. CompletableFuture.allOf(async1, async2, async3, async4, async5, async6, async7, async8, async9, async10).join();
    45. System.out.println("1");
    46. System.out.println("顺序执行耗时:" + (System.currentTimeMillis() - l));
    47. }
    48. private static String check() {
    49. for (int j = 0; j < 50000000; j++) {
    50. String s = "" + j + j;
    51. }
    52. return "ok";
    53. }
    54. }
  • 相关阅读:
    hot100-数组中的第k个最大元素
    项目管理之如何有效定义项目目标
    人为什么要努力?编程、学习之路…很迷茫?个人经验分享
    Bad format for Timestamp ‘203‘ in column 1
    【0基础学习mysql】之日期函数和流程函数
    【8章】Spark编程基础(Python版)
    WPF 02
    React_创建一个项目
    神经网络迭代次数的一个近似关系
    Golang中的GC原理(介于三个不同版本)
  • 原文地址:https://blog.csdn.net/qx020814/article/details/132887690