java多线程中,如果需要有返回值,就需要实现Callable接口。

看例子:

先建立一个Dowork这个类,就是平时某个业务的实现

package com.ming.thread.one;

import java.util.concurrent.Callable;

/**
*
* 定义一个具体做事情work
* 线程运行完成后返回一个Stirng
* @author ming
*
*/
public class Dowork implements Callable<String> { private int i=10; @Override
public String call() throws Exception {
while(i>0){
System.out.println("i am work......"+i);
i--;
Thread.sleep(1000);
}
return "我做完了这次工作哦...";
} }

然后在我的测试类中,你可以看到要建立一个FutureTask这个任务调度,最后通过它可以获取线程执行的返回值.

package com.ming.thread.one;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask; /**
* 测试dowork的线程
* @author ming
*
*/
public class TestDowork { public static void main(String[] args) throws InterruptedException, ExecutionException {
Dowork dowork=new Dowork();
FutureTask<String> futureTask=new FutureTask<>(dowork);//新建一个检查dowork的线程任务
new Thread(futureTask).start();
while(!futureTask.isDone()){
System.out.println("检查工作释放做完...");
Thread.sleep(100);
}
String s=futureTask.get();
System.out.println("获取追后返回值哦..."+s);
}
}

ok,ok,ok。。。

最新文章

  1. php使用microtime(true)查看代码执行时间
  2. 实验一 cmd命令的编写
  3. pt_table_checksum对检查表的chunk大小的限制
  4. 积累一点ctf需要掌握的常见脚本知识
  5. Atiti &#160;attilax主要成果与解决方案与案例rsm版 v4
  6. mysql IP转换函数
  7. Linux下tftp安装与配置
  8. JQuery 对 Select option 的操作---转载
  9. 如何清除win7开机密码
  10. Mysql一主多从和读写分离配置简记
  11. POJ 3254 poj3254 Corn Fields
  12. linux内核启动参数
  13. S5PV210开发板刷机(SD卡uboot、串口+USB-OTG刷机方法)
  14. hdu 2123
  15. Qt中提高sqlite的读写速度(使用事务一次性写入100万条数据)
  16. 【Struts2学习笔记(11)】对action的输入校验和XML配置方式实现对action的全部方法进行输入校验
  17. 彩色图像--色彩空间 YIQ 、YUV 、YCbCr 、YC1C2 和I1I2I3
  18. WINDOWS程序设计对话框加载显示bmp图像及刷新
  19. jsp中实现点击文件名称完成下载
  20. Apex 中的自定义迭代器

热门文章

  1. ES6学习之字符串的扩展
  2. 安装zendstudio和破解方法及配置svn
  3. 问题:部署到iis上后Chart图片不显示;结果:使用webchart过程中遇到的一些问题
  4. Ok6410裸机驱动学习(二)ARM基础知识
  5. ansible一键部署LAMP
  6. Hander----使用
  7. js开发:数组的push()、pop()、shift()和unshift()(转)
  8. datanode与namenode的通信原理
  9. swiper实现左右滑动图片
  10. 第二周作业-影评、靶机和攻击机的安装与配置、kali的配置、DNS解析