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

多线程Callable优化for循环,需要拿到for循环的返回值

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

多线程Callable优化for循环,需要拿到for循环的返回值

package com;

import java.util.ArrayList;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class TestThread {


    public static void main(String[] args) throws Exception {


        long start = System.currentTimeMillis();
        int all = test1();
        long end = System.currentTimeMillis();
        System.out.println("all的值为:" + all);
        System.out.println("耗时秒:" + (end - start) / 1000);

        long start2 = System.currentTimeMillis();
        int all2 = test2();
        long end2 = System.currentTimeMillis();
        System.out.println("all2的值为:" + all2);
        System.out.println("2耗时秒:" + (end2 - start2) / 1000);

    }


    
    private static int test1() throws InterruptedException {
        int all = 0;
        for (int i = 0; i < 20; i++) {
            //这里模拟业务和耗时操作
            Thread.sleep(500);
            all = all + i;
        }
        return all;
    }

    
    private static int test2() throws InterruptedException, InterruptedException, ExecutionException {

        ExecutorService service = Executors.newFixedThreadPool(10);
        ArrayList> list = new ArrayList<>();

        for (int i = 0; i < 20; i++) {
            CallableTest callableTest = new CallableTest(i);
            list.add(service.submit(callableTest));
        }

        int all = 0;
        for (Future dateFuture : list) {
            all = all + dateFuture.get();
        }
        return all;
    }


}
package com;

import java.util.concurrent.Callable;

public class CallableTest implements Callable {


    int i;

    CallableTest(int sort){
        i=sort;
    }

    @Override
    public Object call() throws Exception {
        //这里模拟业务和耗时操作
        Thread.sleep(500);
        return i;
    }

}

运行结果:结果都获取到了,且一样;多线程优化完后只要1秒,不用多线程要10秒

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

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

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