FutureTask 示例

1、简单示例

2、泡茶

 

1、简单示例

// 创建 FutureTask
FutureTask<Integer> futureTask = new FutureTask<>(()-> 1+2);
// 创建并启动线程
Thread t1 = new Thread(futureTask);
t1.start();// 获取计算结果(阻塞主线程,等待结果...)
Integer result = futureTask.get();
System.out.println("result=" + result);

2、泡茶

// 创建任务 T2 的 FutureTask
FutureTask<String> ft2 = new FutureTask<>(new T2Task());
// 创建任务 T1 的 FutureTask
FutureTask<String> ft1 = new FutureTask<>(new T1Task(ft2));
// 线程 T1 执行任务 ft1
Thread T1 = new Thread(ft1);
T1.start();
// 线程 T2 执行任务 ft2
Thread T2 = new Thread(ft2);
T2.start();
// 等待线程 T1 执行结果
System.out.println(ft1.get());

任务类

//T1Task 需要执行的任务:
//洗水壶、烧开水、泡茶
class T1Task implements Callable<String>{private FutureTask<String> futureTask;//T1 任务需要 T2 任务的 FutureTaskpublic T1Task(FutureTask<String> ft2){this.futureTask = ft2;}@Overridepublic String call() throws Exception {System.out.println("T1: 洗水壶...");TimeUnit.SECONDS.sleep(1);System.out.println("T1: 烧开水...");TimeUnit.SECONDS.sleep(15);//获取 T2 线程的茶叶String tf = futureTask.get();System.out.println("T1: 拿到茶叶:"+tf);System.out.println("T1: 泡茶...");return " 上茶:" + tf;}
}//T2Task 需要执行的任务:
//洗茶壶、洗茶杯、拿茶叶
class T2Task implements Callable<String> {@Overridepublic String call() throws Exception {System.out.println("T2: 洗茶壶...");TimeUnit.SECONDS.sleep(1);System.out.println("T2: 洗茶杯...");TimeUnit.SECONDS.sleep(2);System.out.println("T2: 拿茶叶...");TimeUnit.SECONDS.sleep(1);return " 龙井 ";}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习必知的8大神经网络架构和原理

来源&#xff1a;全球人工智能概要&#xff1a;有些任务直接编码较为复杂&#xff0c;我们不能处理所有的细微之处和简单编码&#xff0c;因此&#xff0c;机器学习很有必要。为什么需要机器学习&#xff1f;有些任务直接编码较为复杂&#xff0c;我们不能处理所有的细微之处和…

《科学》盘点2018可能被聚焦的研究领域

来源&#xff1a;科学网 概要&#xff1a;随着这些大趋势展现出来&#xff0c;《科学》杂志预测了今年可能被聚焦的关于研究和政策的特定领域。动荡的政治变革将在新的一年塑造科学的进程。美国总统唐纳德特朗普领导的政府预计将继续致力于废除基于科学的环境法规。英国离开欧盟…

Hamcrest匹配器常用方法总结

一.Hamcrest是什么&#xff1f; Hamcrest is a library of matchers, which can be combined in to create flexible expressions of intent in tests. Hamcrest 是一个为了测试为目的&#xff0c;且能组合成灵活表达式的匹配器类库。 二.Hamcrest jar包 hamcrest-core.jar -…

谷歌大脑2017总结下篇:从医疗、机器人等6个领域开始的改变世界之旅

作者&#xff1a;camel概要&#xff1a;Jeff Dean发表了这篇博文的下篇&#xff0c;内容包括谷歌大脑在 AI 应用方面&#xff08;诸如医疗、机器人、创新、公平和包容等&#xff09;的工作。昨天谷歌大脑&#xff08;Google Brain&#xff09;负责人 Jeff Dean 在 Google Resea…

敏捷开发原则

1、我们最优先要做的是通过尽早的、持续的交互有价值的软件来使客户满意。 2、即使到了开发的后期&#xff0c;也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。 3、经常性地交付可以工作的软件&#xff0c;交付的间隔可以几周~几月&#xff0c;交付的时间间隔越短越…

java xml 序列化_java-序列化为XML时忽略父类

当子类列表上有XmlElement时,是否有一个JAXB注释可以忽略父类&#xff1f;只是要澄清一下-我想知道是否有比将所有父类的getter / setter标记为瞬态更好的方法,然后不得不回到子类并添加getter / setter并将它们标注为XmlElements一个例子&#xff1a;public class GenericHelp…

Gartner:人工智能将改变个人设备领域的游戏规则

来源&#xff1a;人工智能和大数据概要&#xff1a;目前&#xff0c;AI正在产生多种颠覆性力量&#xff0c;重塑我们与个人技术互动的方式。近日&#xff0c;Gartner公司预测&#xff0c;随着情感人工智能&#xff08;AI&#xff09;日臻成熟&#xff0c;个人设备到2022年将比您…

极限编程实践

1、客户作为团队成员 谁是客户&#xff1f;XP团队中的客户是指定义产品的特性并排列这些特性优先级的人或团体。 最好是客户和开发人员在一个房间中工作。 2、用户故事 对于做计划而言&#xff0c;了解需求只需要做到能够估算它的程度就足够了&#xff0c;需求的特定细节很可能…

南开大学java考试试题_2014秋学期南开大学《Java语言程序设计》在线作业附答案...

2014秋学期南开大学《Java语言程序设计》在线作业附答案1.下列代码中&#xff0c;将引起一个编译错误的行是(D)。1)public class Test{ 2) int m,n; 3) public Test(){} 4) public Test(inta){ma;} 5) public static void main(String args[]){ 6) Test t1,t2; 7) int j,k;8) j…

张小龙演讲干货:微信的未来在哪?这里有7个答案

来源&#xff1a;钱塘大数据概要&#xff1a;1月15日&#xff0c;以“to be正当时”为主题的2018微信公开课Pro版在广州举行&#xff0c;腾讯集团高级执行副总裁、微信事业群总裁张小龙出席并发表演讲。1月15日&#xff0c;以“to be正当时”为主题的2018微信公开课Pro版在广州…

敏捷软件开发—原则、模式与实践总结

思维导图&#xff1a;https://www.processon.com/view/link/60d46dfb5653bb049a469068

java 配置写成表达式_Java的正则表达式之小结

一直很奇怪为什么Java和Tcl的正则表达式之间有这样的一个差异&#xff0c;即Tcl正则表达式中的转义符\在Java正则表达式中一律会需要写成\\。比如&#xff0c;Tcl的正则表达式为 "^Case\_name\s*\\s*(.*)"对应的Java正则表达式则需要写成 "^Case\\_name\\s*\\\s…

AWS VS 阿里云 VS 腾讯云 国内三大云服务商云主机评测报告

来源&#xff1a;CloudBest概要&#xff1a;近几年&#xff0c;随着国内公有云市场规模的不断增长&#xff0c;以阿里云、腾讯云为代表的本土云服务商&#xff0c;以及以AWS、微软Azure为代表的海外云服务商&#xff0c;成为公有云市场最大的赢家&#xff0c;市场寡头化趋势已经…

单一职责原则(SRP)

单一职责原则&#xff08;The Single Responsibility Principle&#xff0c;SRP&#xff09; 就一个类而言&#xff0c;应该仅有一个引起它变化的原因。 为何要把两个职责分离到单独的类中&#xff1f; 因为每一个职责都是变化的一个轴线&#xff08;an axis of change&…

数独java界面基础_java版数独游戏界面实现(二)

本文实例为大家分享了java版数独游戏界面实现的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下实现效果图&#xff1a;这里写图片描述主函数用于启动程序&#xff1a;package hlc.shudu.app;import hlc.shudu.src.ShuduHelper;import hlc.shudu.ui.ShuduMainFrame;pu…

多国相继出台政策法规:为「自动驾驶」的「创新发展」保驾护航

来源&#xff1a;腾讯研究院曹建峰 腾讯研究院法律研究中心高级研究员祝林华 腾讯研究院法律研究中心助理研究员人工智能等新技术&#xff0c;正从科幻概念逐步落地到各行各业&#xff0c;将从重塑驾驶、医疗、制造等领域开始&#xff0c;全面重构人类社会和生活。自动驾驶汽…

测试替身之类型

测试桩Stub 桩&#xff1a;截断的或非常短的物体。 测试桩&#xff0c;用最简单的可能实现代替Real。 基本实现&#xff1a;所有方法仅一行&#xff0c;返回默认值。 public class LoggerStub implements Logger {public void log(LogLevel level, String message) {// still…

华为《5G业务商业价值评估》白皮书!

来源&#xff1a;5G蹇飒&#xff1a;华为公司商业与网络咨询部咨询专家。概要&#xff1a;在过去不长的时间里&#xff0c;5G技术不断取得重大进展&#xff0c;5G发展之路更为清晰。未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学…

java正则匹配的坑_java正则表达式入坑指南

在日常开发工作中&#xff0c;无论你使用的语言是java、python、shell、golang还是C#&#xff0c; 正则表达式是编程语言中几乎绕不开的话题。有了它&#xff0c;可以帮你快速定位到符合条件的文本内容。今天小编带大家一起来学习下正则表达式&#xff0c;相信通过这篇文章的介…

这有5种来自大自然「馈赠」的AI技术及其应用,你知道多少?

原文来源&#xff1a;Towards Data Science作者&#xff1a;Luke James「雷克世界」编译&#xff1a;KABUDA对于技术领域中存在的AI相关技术&#xff0c;我们应心存感恩。人类不仅花费了数十年的时间来研究完善数学算法&#xff0c;以使这些奇妙复杂的算法发挥效用&#xff0c;…