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

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

多线程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秒

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5686338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存