Java线程池中submit()和execute()方法有什么区别
两个方法都可以向线程池提交任务,execute()方法的返回类型是void,它定义在Executor接口中,而submit()方法返回有计算结构的Future对象,它定义在ExecutorService接口中,它拓展了Executor接口,其他线程池类像ThreadPoolExecutor和ScheduledThreadPoolExecutor都有这些方法。
submit()
public static void submit() throws ExecutionException, InterruptedException {ExecutorService executorService = Executors.newFixedThreadPool(3);Callable callable = () -> {Thread.sleep(4000);return "我是结果!";};Future future = executorService.submit(callable);//关闭连接池executorService.shutdown();//同步获取结果String str = future.get().toString();System.out.println("str:" + str);
}
execute()
public static void execute(){ExecutorService executorService = Executors.newFixedThreadPool(3);Runnable runnable = () -> {System.out.println("hello runnable!");};executorService.execute(runnable);//关闭连接池executorService.shutdown();
}
Java线程池中submit()和execute()方法有什么区别相关推荐
- java 线程池 execute_Java线程池的submit和execute方法区别
线程池中的execute方法大家都不陌生,即开启线程执行池中的任务. 还有一个方法submit也可以做到,它的功能是提交指定的任务去执行并且返回Future对象,即执行的结果. 下面简要介绍一下两者的 ...
- 线程池的submit和execute方法区别
线程池中的execute方法大家都不陌生,即开启线程执行池中的任务.还有一个方法submit也可以做到,它的功能是提交指定的任务去执行并且返回Future对象,即执行的结果.下面简要介绍一下两者的三个 ...
- Java 线程池中的线程复用是如何实现的?
前几天,技术群里有个群友问了一个关于线程池的问题,内容如图所示: 关于线程池相关知识可以先看下这篇:为什么阿里巴巴Java开发手册中强制要求线程池不允许使用Executors创建? 那么就来和大家探讨 ...
- java_多线程——线程池、submit和execute区别
一.线程池的概念 顾名思义就是事先准备一个池子(线程池),初始化一些线程,当使用可以快速调用,不用再初始化线程,使用完成后,不再销毁该线程,归还到线程池,方便后面复用.节省创建和销毁线程资源,提高线程 ...
- Java线程池中线程的状态简介
2019独角兽企业重金招聘Python工程师标准>>> 首先明确一下线程在JVM中的各个状态(JavaCore文件中) 1.死锁,Deadlock(重点关注) 2.执行中,Runna ...
- 线程池中submit()方法与execute()方法的区别
execute()方法实际上是Executor中声明的方法,在ThreadPoolExecutor进行了具体的实现,这个方法是ThreadPoolExecutor的核心方法,通过这个方法可以向线程池提 ...
- 为什么java线程池的submit的不抛出异常
前言 大家好,这里是经典鸡翅,最近有人问我线程池的execute和submit,有的抛出异常,有的不抛出异常,这里鸡翅老哥给大家整理下.通过源码跟踪跟大家讲解. 两个方法 我们先用最普通的方式定义一个 ...
- java 等待线程池结束_如何等待java线程池中所有任务完成
一.等待线程池所有线程完成: 有时候我们需要等待java thread pool中所有任务完成后再做某些操作,如想要等待所有任务完成,仅需调用threadPool.awaitTermination() ...
- 血的教训--如何正确使用线程池submit和execute方法
血的教训之背景:使用线程池对存量数据进行迁移,但是总有一批数据迁移失败,无异常日志打印 凶案起因 听说parallelStream并行流是个好东西,由于日常开发stream串行流的场景比较多,这次 ...
最新文章
- [读书笔记]C语言函数调用过程
- mxnet is not presented
- java斐波那契查找_详解Java Fibonacci Search斐波那契搜索算法代码实现
- 【python】openstack管理小工具(增删查改,批量ping)
- SAP Spartacus 升级时关于 schematics 的更新
- sybase 连接mysql_如何连接到Sybase SQL Anywhere数据库
- Linux(centOS)手动安装删除Apache+MySQL+PHP+Memcached原创无错版
- Day26:configparser、subprocess模块
- fork/join框架Java
- Windows 安装JDK
- 3. wordpress 固定链接
- read一个收到RST的socket会返回0?
- ThinkCMF 框架上的任意内容包含漏洞
- 办公计算机锁屏方法,电脑快速锁屏,办公室神技能,再也不怕别人看我的电脑了!...
- 字节跳动一二三面+HR面
- [谨记]女人面前莫谈年龄
- 百度鹰眼轨迹和虎鲸数据平台之浅谈
- fcpx插件:Stupid raisins show pop for Mac(20个专业设计徽标动画)
- 怎样禁止“Windows - 没有软盘”的提示?
- Paper reading (二十一):Human gut microbiome: hopes, threats and promises
热门文章
- 南京医科大学陈连民组招收博硕士研究生(肠道微生物与心血管代谢健康方向)...
- ​JGG | TaxonKit:一款实用又高效的NCBI分类学数据工具包
- 蚂蚁森林合种计划(2020.12.26更新,7天有效)
- Horticulture Research 模式图的手稿
- 上传数据,直接分析,这才是真正的生物云
- Nature:肠道菌如何影响大脑,帮助消除恐惧相关的行为
- 为什么我参加了那么多学术会议依旧一无所获?
- Nature Microbiology: 微生物数据的系统发育分析方法
- arcgis 中label feature太长换行_MapGIS转换为ArcGIS小结
- R语言数据包自带数据集之ToothGrowth数据集字段解释、数据导入实战