package com.jimmy.demo.util;

import java.util.HashMap;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 = 1;        // 创建一个线程池        ExecutorService pool = Executors.newFixedThreadPool(1);        // 创建多个有返回值的任务        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 + "=====" + Thread.currentThread().getName() + "任务返回运行结果,当前任务时间【" + time + "毫秒】";    }

}

----程序开始运行----
>>>0 任务启动
>>>0 任务终止
>>>0 =====pool-1-thread-1任务返回运行结果,当前任务时间【0毫秒】
>>>0 =====pool-1-thread-1任务返回运行结果,当前任务时间【0毫秒】
----程序结束运行----,程序运行时间【8毫秒】

转载于:https://www.cnblogs.com/jimmy-muyuan/p/6013611.html

有返回值的多线程demo相关推荐

  1. 获取python脚本的返回值_Python多线程获取返回值代码实例

    这篇文章主要介绍了Python多线程获取返回值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用多线程的时候难免想要获取其操作完的返回值 ...

  2. java 多线程 返回值_JAVA多线程实现和应用总结:如何使用有返回值的多线程

    最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结. 1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用E ...

  3. 获取返回值作为变量_解决多线程间共享变量线程安全问题的大杀器——ThreadLocal...

    微信公众号:Zhongger 我是Zhongger,一个在互联网行业摸鱼写代码的打工人! 关注我,了解更多你不知道的[Java后端]打工技巧.职场经验等- 上一期,讲到了关于线程死锁.用户进程.用户线 ...

  4. BeginInvoke与EndInvoke方法解决多线程接收委托返回值问题

    BeginInvoke与EndInvoke方法解决多线程接收委托返回值问题 参考文章: (1)BeginInvoke与EndInvoke方法解决多线程接收委托返回值问题 (2)https://www. ...

  5. java多线程测试框架(含入参和返回值)

    最近要对一个webservice接口做测试,需测试高并发接口是否会以异常数据返回,编写了如下demo,有类似需求的可以参考下. 注意事项: 1,线程使用了callable接口形式,call相对runa ...

  6. python 多线程 线程如何获得返回值 (重写threading.Thread类)

    重写threading.Thread类: # -*- coding: utf-8 -*- """ @File : dontla_ThreadClass.py @Time ...

  7. C#多线程函数如何传参数和返回值

    提起多线程,不得不提起 委托(delegates)这个概念. 我理解的委托就是 具有 同样参数和返回值 的函数的集合. 比如 public delegate void MyDelegate(int a ...

  8. python多线程返回值_python获取多线程及子线程的返回值

    最近有个需求,用多线程比较合适,但是我需要每个线程的返回值,这就需要我在threading.Thread的基础上进行封装 import threading class MyThread(threadi ...

  9. ajax返回值demo

    ajax返回值demo posted on 2016-01-29 15:22 Stanley_yu 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/ ...

最新文章

  1. av_read_frame 阻塞卡死解决办法
  2. 代码签名证书Authenticode签名伪造——PE文件的签名伪造与签名验证劫持
  3. 【深度学习】Ivy 开源框架,深度学习大一统时代到来?
  4. 字符串逆序的几种方法
  5. 远控免杀专题2---msfvenom的隐藏参数
  6. distenct oracle_Oracle的distinct关键字
  7. SQL Server2012新特性
  8. spring DI的三种注入方式分析
  9. imx6 linux 开发环境,米尔iMX6UL开发板Linux操作系统的环境部署
  10. Kafka CPU使用率高排查思路及解决方案
  11. 键盘定位板图纸_聊聊机械键盘的结构。
  12. 手机屏幕尺寸、分辨率,图像像素、分辨率、实际大小解惑
  13. AppScan的许可证
  14. 我参加NVIDIA Sky Hackathon(语音识别模型训练)
  15. c语言设计奥运奖牌管理系统,求一个用C语言编程的奥运奖牌管理系统
  16. Microsoft Graph PowerShell v2 发布公开预览版 - 一半的大小,加速的自动化体验
  17. ubuntu无法ping www.baidu.com问题
  18. python中怎么表示阶乘_python阶乘怎么写
  19. SpringBoot入门建站全系列(二十七)WebSocket做简单的聊天室
  20. 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第五集

热门文章

  1. JVM统介——Java虚拟机架构
  2. python 图片上传到minio时,在minio不是显示图片格式
  3. JVM_02 类加载器子系统
  4. STM32开发 -- VS2017错误
  5. LIVE555再学习 -- testH264VideoStreamer 源码分析
  6. c语言怎么在编码时改变颜色,怎么给贪吃蛇换一个颜色 怎么改 代码如下
  7. (原创)Android6.0亮屏流程分析
  8. JZOJ 3852. 【NOIP2014八校联考第2场第2试9.28】单词接龙(words)
  9. 音乐咖android,GitHub - hackers365/musicafe: musicafe音乐咖 — 网易、虾米、QQ音乐一处搞定...
  10. ACM竞赛学习整理--模拟算法举例POJ1068