博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA 多线程 Callable 与 FutureTask:有返回值的多线程
阅读量:6930 次
发布时间:2019-06-27

本文共 1208 字,大约阅读时间需要 4 分钟。

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

看例子:

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

package com.ming.thread.one;import java.util.concurrent.Callable;/** *  * 定义一个具体做事情work * 线程运行完成后返回一个Stirng * @author ming * */public class Dowork implements Callable
{ 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
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。。。

 

转载地址:http://eikjl.baihongyu.com/

你可能感兴趣的文章
Mac OS X 10.8.3搭建Android工程源码的编译环境(解决找不到GCC、GIT、PYTHON的问题)...
查看>>
ruby/python/java全覆盖的Selenium-Webdriver系列教程(2)————浏览器的简单操作
查看>>
logcat
查看>>
实验五 含有控制信号的计数器VHDL设计
查看>>
ExtJs 通过分析源代码解决动态加载Controller的问题
查看>>
字符串相似度算法 递归与动态规划求解分析
查看>>
同步博客到CSDN
查看>>
VMware vSphere 服务器虚拟化之二十八 桌面虚拟化之安装View传输服务器
查看>>
用友CDM系统,将货位间商品移库单(一步)修改为内调出入库单(一步)方法使用...
查看>>
(Problem 14)Longest Collatz sequence
查看>>
Oracle中 Package与Package body的介绍
查看>>
解决设置redmineblacklog的按钮无效问题
查看>>
为阿里云存储开发的PHP PEAR 包:Services_Aliyun_OSS
查看>>
2013人人网校园招聘笔试题
查看>>
SqlServer基础:Bit类型
查看>>
挖财_百度百科
查看>>
MySql 日期格式化函数date_format()
查看>>
as3中使用stage ,root ,this 区别详解
查看>>
2013年第42周二明智行动的艺术
查看>>
如何订阅Linux相关的邮件列表
查看>>