Java中submit和execute有什么区别
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,本篇文章给大家分享的是有关Java中submit和execute有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、接收的参数不
千家信息网最后更新 2024年11月18日Java中submit和execute有什么区别
本篇文章给大家分享的是有关Java中submit和execute有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
1、接收的参数不一样
2、submit有返回值,而execute没有
用到返回值的例子,比如说我有很多个做validation的task,我希望所有的task执行完,然后每个task告诉我它的执行结果,是成功还是失败,如果是失败,原因是什么。
然后我就可以把所有失败的原因综合起来发给调用者。
个人觉得cancel execution这个用处不大,很少有需要去取消执行的。
而最大的用处应该是第二点。
3、submit方便Exception处理
意思就是如果你在你的task里会抛出checked或者unchecked exception,
而你又希望外面的调用者能够感知这些exception并做出及时的处理,那么就需要用到submit,通过捕获Future.get抛出的异常。
下面一个小程序演示一下submit方法
public class RunnableTestMain { public static void main(String[] args) { ExecutorService pool = Executors.newFixedThreadPool(2); /** * execute(Runnable x) 没有返回值。可以执行任务,但无法判断任务是否成功完成。 */ pool.execute(new RunnableTest("Task1")); /** * submit(Runnable x) 返回一个future。可以用这个future来判断任务是否成功完成。请看下面: */ Future future = pool.submit(new RunnableTest("Task2")); try { if(future.get()==null){//如果Future's get返回null,任务完成 System.out.println("任务完成"); } } catch (InterruptedException e) { } catch (ExecutionException e) { //否则我们可以看看任务失败的原因是什么 System.out.println(e.getCause().getMessage()); } }}public class RunnableTest implements Runnable { private String taskName; public RunnableTest(final String taskName) { this.taskName = taskName; } @Override public void run() { System.out.println("Inside "+taskName); throw new RuntimeException("RuntimeException from inside " + taskName); }}
以上就是Java中submit和execute有什么区别,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
任务
成功
原因
就是
更多
用处
用者
知识
篇文章
处理
实用
最大
不大
个人
例子
参数
工作会
意思
文章
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器不见了怎么弄
2019网络安全大赛选手
在线数据库测试工具
曙光服务器光模块拔不出
农民利用网络技术致富
网络安全为手抄报内容
如何加强涉密网络安全保密
遵化正规软件开发
云服务器租用什么意思
国内金融软件开发商排名
什么是网络安全漏洞
美信商户通服务器连接异常
计算机网络安全改进
自己做软件开发需要哪些基础
Ps5极限国度为什么连不上服务器
河南石狮软件开发
著名网络安全人员薪资
获取db2数据库时间
数据库后台运行命令
lol服务器手机版
四川企业软件开发排行
云终端共享服务器
云服务器建立flask
西安星通通信软件开发工程师
免费轻量服务器ubuntu
鲶鱼计划软件开发
网络安全大专学历
数据库代码dw
一个数据库包含一个表吗
南昌民宿软件开发