多线程第三种方式 Calls 实现
来源:互联网 发布:淘宝实名认证账号出售 编辑:程序博客网 时间:2024/06/11 15:58
package Dao;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;public class callTest {public static void main(String[] args) {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 Calls(i + " ");// 执行任务并获取Future对象Future f = pool.submit(c);list.add(f);}// 关闭线程池pool.shutdown();// 获取所有并发任务的运行结果for (Future f : list) {// 从Future对象上获取任务的返回值,并输出到控制台try {System.out.println(">>>" + f.get().toString());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}}Date date2 = new Date();System.out.println("-----程序运行结束---运行时间="+ (date2.getTime() - date1.getTime()));}}package Dao;import java.util.Date;import java.util.concurrent.Callable;public class Calls implements Callable<Object>{private String taskNum; Calls(String taskNum) {this.taskNum = taskNum;}@Overridepublic 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+"毫秒";}}
//测试
阅读全文
0 0
- 多线程第三种方式 Calls 实现
- 多线程的第三种实现方式
- 线程池(实现多线程的第三种方式)
- 【我的Java笔记】多线程_多线程实现的第三种方式(线程池)
- java多线程------实现多线程两种方式
- 多线程一:两种方式实现多线程
- 多线程三种实现方式
- 实现多线程方式三种方式
- iOS学习笔记-124.多线程23——多图下载3_第三种实现方式(使用SDWebImage)
- Java实现多线程的两种方式
- Java两种方式实现多线程对比
- 实现多线程的两种方式
- java--多线程实现两种方式
- iOS 多线程的几种实现方式
- JavaLearning:多线程的两种实现方式
- JAVA多线程实现的三种方式
- Java多线程实现的三种方式
- Java实现多线程的两种方式
- 【原创】【组合数学】vijos-1629 八(容斥原理+最小公倍数)
- Maven项目提示:Plugin execution not covered by lifecycle configuration
- 多线程BackGround小案例
- Active Model 与 Active Record 关系
- C++ STL nth_element原理与应用
- 多线程第三种方式 Calls 实现
- 多种实现方案------------ 多线程
- python学习(8)——高级特性
- 多线程yield小案例
- 【Linux技术总结】linux 基础
- codevs 1140 Jam的计数法
- C++继承相关知识点总结
- 【翻译】一步步开发一个Web服务器.Part 2.
- Linux 系统管理之一次性定时任务 at 的使用