zoukankan      html  css  js  c++  java
  • 多线程 测试

    package Thread;
    import java.util.concurrent.*; 
    import java.util.Date; 
    import java.util.List; 
    import java.util.ArrayList; 
      
    /**
    * 有返回值的线程
    */ 
    @SuppressWarnings("unchecked") 
    public class Test { 
    public static void main(String[] args) throws ExecutionException, 
       InterruptedException { 
      System.out.println("----程序开始运行----"); 
      Date date1 = new Date(); 
      
      int taskSize = 5; 
      // 创建一个线程池 
      ExecutorService pool = Executors.newFixedThreadPool(taskSize); 
      // 创建多个有返回值的任务 
      List<Future> list = 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()); 
       list.add(f); 
      } 
      // 关闭线程池 
      pool.shutdown(); 
      
      // 获取所有并发任务的运行结果 
      for (Future f : list) { 
       // 从Future对象上获取任务的返回值,并输出到控制台 
       System.out.println(">>>" + f.get().toString()); 
      } 
      
      Date date2 = new Date(); 
      System.out.println("----程序结束运行----,程序运行时间【" 
        + (date2.getTime() - date1.getTime()) + "毫秒】"); 
    } 
    } 
      
    class MyCallable implements Callable<Object> { 
    private String taskNum; 
      
    MyCallable(String taskNum) { 
      this.taskNum = taskNum; 
    } 
      
    public Object call() throws Exception { 
      System.out.println(">>>" + taskNum + "任务启动"); 
      Date dateTmp1 = new Date(); 
      Thread.sleep(1000); 
      Date dateTmp2 = new Date(); 
      long time = dateTmp2.getTime() - dateTmp1.getTime(); 
      System.out.println(">>>" + taskNum + "任务终止"); 
      return taskNum + "任务返回运行结果,当前任务时间【" + time + "毫秒】"; 
    } 
    }
  • 相关阅读:
    leetcode 13. Roman to Integer
    python 判断是否为有效域名
    leetcode 169. Majority Element
    leetcode 733. Flood Fill
    最大信息系数——检测变量之间非线性相关性
    leetcode 453. Minimum Moves to Equal Array Elements
    leetcode 492. Construct the Rectangle
    leetcode 598. Range Addition II
    leetcode 349. Intersection of Two Arrays
    leetcode 171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/ls1783047205/p/9751162.html
Copyright © 2011-2022 走看看