java中怎么利用多线程批量执行任务

这期内容当中小编将会给大家带来有关java中怎么利用多线程批量执行任务,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

目前成都创新互联公司已为上千多家的企业提供了网站建设、域名、网络空间、成都网站托管、企业网站设计、永丰网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

import java.util.*;
import java.util.concurrent.*;

public class TestThread {

    public static void main(String[] args) throws ExecutionException, InterruptedException {
        System.out.println("----程序开始运行----");
        Date beginTime = new Date();

        // 创建一个线程池,容量为3
        ExecutorService pool = Executors.newFixedThreadPool(3);
        List<Future<String>> list = new LinkedList<>();
        // 创建10个有返回值的任务
        for (int i = 0; i < 10; i++) {
            Callable c = new MyCallable(i + " ");
            // 执行任务并获取Future对象
            Future f = pool.submit(c);
            list.add(f);
        }
        // 关闭线程池:会在所有任务执行完成后关闭线程池,但并不会阻塞程序运行
        pool.shutdown();

        // 获取所有并发任务的运行结果
        for (Future<String> f : list) {
            System.out.println(">>>" + f.get());
        }

        System.out.println("----程序结束运行----,程序运行时间【" + (new Date().getTime() - beginTime.getTime()) + " 毫秒】");
    }
}

class MyCallable implements Callable<Object> {
    private String taskNum;

    MyCallable(String taskNum) {
        this.taskNum = taskNum;
    }

    public Object call() throws Exception {
        Date beginTime = new Date();
        System.out.println(">>>" + taskNum + "任务开始");
        Thread.sleep(new Random().nextInt(5000));
        System.out.println(">>>" + taskNum + "任务结束");
        return taskNum + "任务耗时:" + (new Date().getTime() - beginTime.getTime());
    }
}

上述就是小编为大家分享的java中怎么利用多线程批量执行任务了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。

网页标题:java中怎么利用多线程批量执行任务
当前路径:https://www.cdcxhl.com/article32/jhcssc.html

成都网站建设公司_创新互联,为您提供营销型网站建设网站策划网站排名电子商务建站公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发