zoukankan      html  css  js  c++  java
  • 有返回值的多线程

    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.concurrent.*;
    
    public class ServalMethod {
        /**
         * 有返回值的线程
         */
        public static void main(String[] args) throws ExecutionException, InterruptedException {
            System.out.println("------程序开始运行------");
    
            Date date = new Date();
    
            int taskSize = 5;
    
            //创建一个线程池
            ExecutorService pool = Executors.newFixedThreadPool(taskSize);
            //创建多个有返回值的任务
            List<Future> futures = new ArrayList<Future>();
            for(int i=0;i<taskSize;i++){
                Callable c = new MyCallable(i+"");
                //执行线程并获取Future对象
                Future f = pool.submit(c);
    //            System.out.println(">>>"+f.get().toString());
                futures.add(f);
            }
            //关闭线程池
            pool.shutdown();
    
            //获取所有并发任务的运行结果
            for(Future f:futures){
                //从Future对象上获取任务的返回值,并输出到控制台
                System.out.println(">>>"+f.get().toString());
            }
    
            Date date1 = new Date();
            System.out.println("-----程序运行结束------,程序运行时间【"+(date1.getTime()-date.getTime())+"毫秒】");
        }
    }
    
    class MyCallable implements Callable<Object>{
        private String taskNum;
    
        MyCallable(String taskNum){
            this.taskNum=taskNum;
        }
    
        @Override
        public Object call() throws Exception {
            System.out.println(">>>"+taskNum+"任务启动");
            Date dateTmpl = new Date();
            Thread.sleep(1000);
            Date dateTmp2 = new Date();
            long time = dateTmp2.getTime()-dateTmpl.getTime();
            System.out.println(">>>"+taskNum+"任务终止");
            return taskNum+"任务返回运行结果【"+time+"ms】";
        }
    }

    运行结果如下:

      

  • 相关阅读:
    EF+MVC+Bootstrap 项目实践 Day7
    JS---数组
    OS---华硕笔记本从U盘启动安装系统
    PHP--分页类
    PHP--数据库操作类
    OS---net start mysql 发生系统错误5
    MYSQL---远程连接mysql数据库提示:ERROR 1130的解决办法
    CSS-小谈LV,HA!
    MYSQL---设置存储引擎
    MYSQL---存储引擎
  • 原文地址:https://www.cnblogs.com/scar1et/p/11898688.html
Copyright © 2011-2022 走看看