Java并行编程中的“可调用”与“可运行”任务

当我们用Java编写多线程应用程序时,我们倾向于使用“ Runnable ”接口来实现线程类。

您的类必须简单地实现此接口并覆盖run方法。

对于琐碎的用例,我们可以通过调用“ start”方法直接启动线程,结果将控制流委托给run方法。

但是,在大多数应用程序中,我们最终使用线程池,该线程池管理工作线程并在任务提交到池时促进任务执行。

Java提供了各种各样的线程池,并且还允许程序员创建自己的线程池实现。

将线程任务提交给池的过程也很标准。

在某些情况下,我们可能希望我们的线程做更多的事情,而不是仅仅执行一个任务。

在这种情况下,了解使用Runnable vs Callable的用例很重要。

1.从执行线程返回值

在许多情况下,您可能希望从执行线程返回一个值。

这是“可调用”任务派上用场的地方。

Java ExecutorService API允许接受Callable类型的任务,并返回“ Future”任务。

这对于某些用例可能很有用。

但是,下面给出了使用Callable的更重要的选择之一。

2.能够从执行线程中抛出检查异常

Callable的重要考虑因素之一是程序员具有从执行线程中引发异常的能力。

这可以从我们的多线程应用程序中处理异常,并可以从异常中正常恢复。

如果我们查看“调用”方法的签名,就会发现它引发了一个通用异常–

V call()引发异常

3.其他方案

Callable接口实现也可以与FutureTask结合使用。

FutureTask类接受Callable实现。

FutureTask可以提交给线程池执行器,我们可以使用标准的Future API检索执行结果。

下面的代码段

public class CallableInsideFutureTask{public static void main(String[] args){ExecutorService executor = Executors.newSingleThreadExecutor();FutureTask<String> myTask = new MyTask(new CallableTest());executor.submit(myTask);try {myTask.get();} catch (Exception ex ) {ex.printStackTrace();}executor.shutdownNow();}}

在此示例中, CallableTest类必须实现Callable接口。

如果您喜欢这篇文章,请随时在LinkedIn上进行连接。

翻译自: https://www.javacodegeeks.com/2019/04/callable-runnable-tasks-java-concurrent-programming.html

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

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

相关文章

浙江交换机厂家带你全面了解什么是工业交换机?

我们在工作中会经常接触到交换机&#xff0c;那么&#xff0c;什么是交换机呢&#xff1f;交换机又分为商业级交换机、工业级交换机、非网管型POE型交换机和网管型交换机。今天&#xff0c;在这里我们主要介绍下工业级交换机这块&#xff0c;接下来我们就跟随飞畅科技的小编一起…

室内无线通信定位技术AOD/AOA,都有哪些无线传输优势?

物联网无线数传室内定位技术&#xff1a;AOA与AOD 针对室内环境无法使用卫星定位的问题&#xff0c;目前市场上已经有了很多不同的室内定位技术。 常见的室内无线定位技术有&#xff1a;WiFi通信模块、蓝牙模块、红外线遥控开关、超宽带无线通信技术、RFID射频技术、ZigBee模…

[渝粤教育] 南京信息职业技术学院 电工电子技术基础 参考 资料

教育 -电工电子技术基础-章节资料考试资料-南京信息职业技术学院【】 【谈一谈】我希望从这门课中学到什么&#xff1f; 【猜猜看】谁会和我一起学习&#xff1f; 1、【多选题】你认为&#xff0c;在该课程中&#xff0c;大家主要基于什么原因前来选修学习&#xff1f;&#xf…

DLT645和modbus rtu无线通信协议介绍对比

超详细&#xff01;DLT645通信协议介绍 无线通信协议传输简介 目前主要使用的有两个版本DLT645-97和DLT645-07&#xff0c;该协议主要用于电表抄表&#xff0c;采用为主-从结构的半双工通讯模式&#xff0c;硬件接口使用RS-485&#xff0c;协议帧报文和使用方法与modbus rtu类…

一文了解网络交换机的6种命令配置模式

网络交换机&#xff0c;是一个扩大网络的器材&#xff0c;能为子网络中提供更多的连接端口&#xff0c;以便连接更多的计算机。我们在配置交换机的时候首先要了解的就是交换机命令模式&#xff0c;那么&#xff0c;网络交换机的命令配置模式有哪些呢&#xff1f;接下来小编就来…

【串口服务器rs485通信教程】存储型网关工作模式

首先需要明白的是串口的通讯速率是远低于网口&#xff0c;主机在请求RTU设备通常只处理几个寄存器&#xff0c;“存储型网关”就是应用于这种工作环境。 “存储型网关”对主机请求的读取指令进行存储&#xff0c;当主机再次请求或者其他主机请求相同设备&#xff08;地址码相同…

[渝粤教育] 南京工业职业技术大学 高职英语 参考 资料

教育 -高职英语-章节资料考试资料-南京工业职业技术大学【】 Exercises (Test) 1、【单选题】What is the headquarter of FORD? A、USA B、Germany C、England D、France 参考资料【 】 2、【单选题】What is the headquarter of WALMART? A、USA B、France C、England D、J…

soap签名_签名SOAP消息–生成封装的XML签名

soap签名数字签名是使数字内容可信的一种广泛使用的机制。 通过为某些内容生成数字签名&#xff0c;我们可以让另一方能够验证该内容。 通过此验证&#xff0c;它可以保证在我们签名后不会更改。 通过这个示例&#xff0c;我将分享如何为SOAP信封生成签名。 但是&#xff0c;这…

基于SAEJ1939无线通信数传协议的CAN(控制器局域网络)总线批量数据传输

CAN总线 CAN&#xff08;控制器局域网络&#xff09;总线&#xff0c;以其高实时性、高可靠性、功能完善、高性价比、开发周期短、等诸多优点&#xff0c;被大量应用于车辆通信及控制&#xff0c;几乎所有汽车生产商及其供应商都选则CAN总线做为通信介质。 SAEJ1939协议 SAE…

[渝粤教育] 南京师范大学中北学院 C语言程序设计 参考 资料

教育 -C语言程序设计-章节资料考试资料-南京师范大学中北学院【】 第一章 单元测试 1、【单选题】对于计算机来说&#xff0c;最后执行的C语言程序是&#xff08; &#xff09; A、源程序 B、目标程序 C、汇编程序 D、可执行程序 参考资料【 】 2、【单选题】以下叙述中正确的是…

工业以太网交换机品牌排行榜,国产工业交换机哪个品牌好?

国内工业以太网交换机都有哪些品牌&#xff1f;近年来&#xff0c;国产的工业交换机品牌非常的多&#xff0c;在很多领域被广泛应用&#xff0c;比如说&#xff1a;智能交通&#xff0c;轨道交通&#xff0c;电力&#xff0c;矿山等多个领域&#xff0c;现在随着国内交换机研发…

【物联网天线选择攻略】2.4GHz 频段增益天线模块设备选择

天线模块设备(antenna)是一种能量变换器&#xff0c;它把传输线上传播的导行波&#xff0c;变换成在无界媒介中传播的电磁波&#xff0c;或者进行相反的变换。对于设计一个应用于射频系统中的小功率、短距离的2.4GHz无线收发设备&#xff0c;天线的设计和选择是其中的重要部分&…

[渝粤教育] 南京邮电大学 有机电子学(双语) 参考 资料

教育 -有机电子学&#xff08;双语&#xff09;-章节资料考试资料-南京邮电大学【】 Quiz-I 1、【判断题】Organic molecule can contain metal atom. A、正确 B、错误 参考资料【 】 2、【判断题】There are some differences in opto-electronics processes between organic …

POE供电交换机应用方案及功能特性介绍

PoE供电交换机是指能够通过网线为远端受电终端提供网络供电的交换机&#xff0c;包含网络交换机和PoE供电两个功能&#xff0c;是PoE供电系统中比较常见的供电设备。那么&#xff0c;POE供电交换机应用方案及功能特性有哪些呢&#xff1f;接下来我们就一起来看看吧&#xff01;…

Selenium WebDriver的TestNG注释完整指南

TestNG是CdricBeust创建的测试框架 &#xff0c;有助于满足我们的许多测试需求。 它被广泛用于硒中。 想知道NG代表什么&#xff1f; 好吧&#xff0c;它指的是“下一代” 。 TestNG与Junit相似&#xff0c;但在控制程序的执行流程方面更强大。 作为框架的本质&#xff0c;我们…

NB-IoT无线通信模块与Lora无线通信协议技术分析与前景展望

物联网的快速发展对无线通信技术提出了更高的要求&#xff0c;专为低带宽、低功耗、远距离、大量连接的物联网应用而设计的LPWAN(low-power Wide-Area Network&#xff0c;低功耗广域网)也快速兴起。物联网应用需要考虑许多因素&#xff0c;例如节点成本&#xff0c;网络成本&a…

[渝粤教育] 南昌大学 高等数学(二) 参考 资料

教育 -高等数学&#xff08;二&#xff09;-章节资料考试资料-南昌大学【】 &#xff08;测验&#xff09;微分方程的基本概念&#xff1b;可分离变量的微分方程&#xff1b;齐次方程&#xff1b;一阶线性微分方程 1、【单选题】 A、 B、 C、 D、 参考资料【 】 2、【单选题】1…

飞畅科技-PoE交换机的常见问题解答

PoE供电技术的发展势头越来越好&#xff0c;凭借其简化的用电设备的安装、部署、节能和安全性等优势&#xff0c;PoE的应用也越来越广&#xff0c;很多朋友或许对poe交换机不是很了解&#xff0c;今天就由飞畅科技的小编来为大家详细介绍一下PoE交换机的常见问题&#xff0c;感…

E104-BT01超低功耗蓝牙模块BLE4.0协议的片载系统解决方案

1、E104-BT01简介 E104-BT01 是亿佰特设计生产的一款小体积的蓝牙模块&#xff0c;贴片型&#xff08;引脚间距 1.27mm&#xff09;&#xff0c;自带高性能 PCB 板载天线。支持 BluetoothV4.0 标准&#xff0c;简单配置后可与符合BLE4.0协议的主机建立蓝牙连接&#xff0c;实现…

[渝粤教育] 厦门大学 大数据技术原理与应用 参考 资料

教育 -大数据技术原理与应用-章节资料考试资料-厦门大学【】 第1章 大数据概述 单元测验 1、【单选题】第三次信息化浪潮的标志是&#xff1a; A、个人电脑的普及 B、互联网的普及 C、云计算、大数据、物联网技术的普及 D、虚拟现实技术的普及 参考资料【 】 2、【单选题】就数…