• 多线程 测试


    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 + "毫秒】"; 
    } 
    }
  • 相关阅读:
    spring总结
    mybatis总结
    HttpClient,okhttp,Jodd-http 使用上的差异
    RPC序列化
    RPC是什么? (学习笔记)
    MySQL普通索引与唯一索引
    MySQL 存储引擎
    TCP的流量控制和拥塞控制
    【转载】Windows自带.NET Framework版本大全
    [知识点] 总目录
  • 原文地址:https://www.cnblogs.com/ls1783047205/p/9751162.html
Copyright © 2020-2023  润新知