栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot 线程池 有返回值的多线程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot 线程池 有返回值的多线程

计算 控制台循环10次 0-100000000共需要多长时间;

1,线程池配置类
参阅前篇
2,service

Future sayAgin10000();

3,Impl

    @Override
    @Async
    public Future sayAgin10000() {
        for (int i = 0; i < 100000000; i++) {
            if(i==99999999){
                System.out.println("---:"+i);
            }
        }
        return new AsyncResult<>("OK");
    }

4,controller 调用

    @GetMapping("/sayAgin10000")
    public JSONObject sayAgin10000(){
        JSONObject jsb = new JSONObject();
        long s = System.currentTimeMillis();
        List> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            System.out.println("执行第"+i+1+"遍!");
            list.add(userService.sayAgin10000());
        }

        for (Future f:list){
            try {
                //获取每个执行结果
                String s1 = f.get();
                System.out.println("获得结果:"+s1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }
        }
        long e = System.currentTimeMillis();
        System.out.println("所有任务执行完成!共耗时"+(e-s)+"毫秒!");
        jsb.put("msg","sucess!");
        return jsb;
    }

备注:
开始设置循环次数为 10000, 在方法实现上加不加 @Async 注解,耗时差距都不大,甚至有几次不加注解的返回更快些。循次数加大后,在加了@Async 异步注解后,优势就体现出来了。
当前数据量:加@Async异步注解,耗时300毫秒,不加@Async异步注解在1500毫秒;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号