Future

作者: 云淡风轻任我行 | 来源:发表于2020-06-23 00:31 被阅读0次

1 测试类-FetureTest

package com.sqq.future;

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

/**
 * @description: Future模式计算1到1亿的和
 * @author: shiqiangqiang
 * @createDate: 2020/6/21
 * @version: 1.0
 */
public class FetureTest {

    /**
     * Future模式计算1到1亿的和
     * @param args
     */
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        ExecutorService executorService  = Executors.newCachedThreadPool();

        List<Future<Integer>> futureList = new ArrayList<>();
        // 计算1000次1至1亿的和
        for (int i=0; i<1000; i++){
            // 调度执行
            futureList.add(executorService.submit(new Calc()));
        }
        System.out.println("耗时: " + (System.currentTimeMillis() - start));

        for (int i = 0; i < 1000; i++) {
            try {
                Integer result = futureList.get(i).get();
                System.out.println("第" + i + "个结果: " + result + ",   到第"+i+"个总耗时: " + (System.currentTimeMillis() - start));

            } catch (InterruptedException | ExecutionException e) {
                e.printStackTrace();
            }
        }
        System.out.println("计算总耗时: " + (System.currentTimeMillis() - start));

        executorService.shutdown();

    }

}

2 Callable实现类

package com.sqq.future;

import java.util.concurrent.Callable;

/**
 * @description: 计算类
 * @author: shiqiangqiang
 * @createDate: 2020/6/21
 * @version: 1.0
 */
public class Calc implements Callable<Integer> {

    @Override
    public Integer call() throws Exception {
        return cal(100000000);
    }

    /**
     * 计算一个亿的和
     * @param num
     * @return
     */
    public static int cal (int num) {
        int sum = 0;
        for (int i = 0; i < num; i++) {
            sum += i;
        }
        return sum;
    }
}

相关文章

网友评论

      本文标题:Future

      本文链接:https://www.haomeiwen.com/subject/wfoqfktx.html