重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

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> 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 f : list) {
            System.out.println(">>>" + f.get());
        }

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

class MyCallable implements Callable {
    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中怎么利用多线程批量执行任务
链接分享:http://cqcxhl.com/article/jhcssc.html