Java 多线程 API

2022/7/17 1:17:40

本文主要是介绍Java 多线程 API,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

//3703ms
import java.util.concurrent.*;

class Test {
    private int SIZE = 4;
    private Long limit = 4000000000L;
    private Long ans[] = new Long[SIZE];
    public static void main(String[] args) {
        long startTime = System.currentTimeMillis();
        Test test = new Test();
        test.run();
        long endTime = System.currentTimeMillis();
        System.out.println("程序运行时间: "+(endTime - startTime)+"ms");
    }

    void run() {
        ThreadPoolExecutor executor = new ThreadPoolExecutor(
                SIZE,
                20,
                100,
                TimeUnit.SECONDS,
                new LinkedBlockingQueue<>(100),
                new ThreadPoolExecutor.AbortPolicy()); //拒绝策略
        Long base = limit / SIZE;

        Future<Long> []future = (Future<Long>[]) new Future<?> [SIZE];
        try {
            for(Integer i = 0; i < SIZE; i++) {
                Long l = i * base + 1, r = l + base;
                future[i] = executor.submit(new Calculate(l, r, limit));
            }
            Long ans = 0L;
            for(Integer i = 0; i < SIZE; i++) {
                ans += future[i].get();
            }
            System.out.println(ans);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}



这篇关于Java 多线程 API的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程