两个方法都可以向线程池提交任务,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()方法有什么区别相关推荐

  1. java 线程池 execute_Java线程池的submit和execute方法区别

    线程池中的execute方法大家都不陌生,即开启线程执行池中的任务. 还有一个方法submit也可以做到,它的功能是提交指定的任务去执行并且返回Future对象,即执行的结果. 下面简要介绍一下两者的 ...

  2. 线程池的submit和execute方法区别

    线程池中的execute方法大家都不陌生,即开启线程执行池中的任务.还有一个方法submit也可以做到,它的功能是提交指定的任务去执行并且返回Future对象,即执行的结果.下面简要介绍一下两者的三个 ...

  3. Java 线程池中的线程复用是如何实现的?

    前几天,技术群里有个群友问了一个关于线程池的问题,内容如图所示: 关于线程池相关知识可以先看下这篇:为什么阿里巴巴Java开发手册中强制要求线程池不允许使用Executors创建? 那么就来和大家探讨 ...

  4. java_多线程——线程池、submit和execute区别

    一.线程池的概念 顾名思义就是事先准备一个池子(线程池),初始化一些线程,当使用可以快速调用,不用再初始化线程,使用完成后,不再销毁该线程,归还到线程池,方便后面复用.节省创建和销毁线程资源,提高线程 ...

  5. Java线程池中线程的状态简介

    2019独角兽企业重金招聘Python工程师标准>>> 首先明确一下线程在JVM中的各个状态(JavaCore文件中) 1.死锁,Deadlock(重点关注) 2.执行中,Runna ...

  6. 线程池中submit()方法与execute()方法的区别

    execute()方法实际上是Executor中声明的方法,在ThreadPoolExecutor进行了具体的实现,这个方法是ThreadPoolExecutor的核心方法,通过这个方法可以向线程池提 ...

  7. 为什么java线程池的submit的不抛出异常

    前言 大家好,这里是经典鸡翅,最近有人问我线程池的execute和submit,有的抛出异常,有的不抛出异常,这里鸡翅老哥给大家整理下.通过源码跟踪跟大家讲解. 两个方法 我们先用最普通的方式定义一个 ...

  8. java 等待线程池结束_如何等待java线程池中所有任务完成

    一.等待线程池所有线程完成: 有时候我们需要等待java thread pool中所有任务完成后再做某些操作,如想要等待所有任务完成,仅需调用threadPool.awaitTermination() ...

  9. 血的教训--如何正确使用线程池submit和execute方法

    血的教训之背景:使用线程池对存量数据进行迁移,但是总有一批数据迁移失败,无异常日志打印 凶案起因 ​ 听说parallelStream并行流是个好东西,由于日常开发stream串行流的场景比较多,这次 ...

最新文章

  1. [读书笔记]C语言函数调用过程
  2. mxnet is not presented
  3. java斐波那契查找_详解Java Fibonacci Search斐波那契搜索算法代码实现
  4. 【python】openstack管理小工具(增删查改,批量ping)
  5. SAP Spartacus 升级时关于 schematics 的更新
  6. sybase 连接mysql_如何连接到Sybase SQL Anywhere数据库
  7. Linux(centOS)手动安装删除Apache+MySQL+PHP+Memcached原创无错版
  8. Day26:configparser、subprocess模块
  9. fork/join框架Java
  10. Windows 安装JDK
  11. 3. wordpress 固定链接
  12. read一个收到RST的socket会返回0?
  13. ThinkCMF 框架上的任意内容包含漏洞
  14. 办公计算机锁屏方法,电脑快速锁屏,办公室神技能,再也不怕别人看我的电脑了!...
  15. 字节跳动一二三面+HR面
  16. [谨记]女人面前莫谈年龄
  17. 百度鹰眼轨迹和虎鲸数据平台之浅谈
  18. fcpx插件:Stupid raisins show pop for Mac(20个专业设计徽标动画)
  19. 怎样禁止“Windows - 没有软盘”的提示?
  20. Paper reading (二十一):Human gut microbiome: hopes, threats and promises

热门文章

  1. 南京医科大学陈连民组招收博硕士研究生(肠道微生物与心血管代谢健康方向)...
  2. ​JGG | TaxonKit:一款实用又高效的NCBI分类学数据工具包
  3. 蚂蚁森林合种计划(2020.12.26更新,7天有效)
  4. Horticulture Research 模式图的手稿
  5. 上传数据,直接分析,这才是真正的生物云
  6. Nature:肠道菌如何影响大脑,帮助消除恐惧相关的行为
  7. 为什么我参加了那么多学术会议依旧一无所获?
  8. Nature Microbiology: 微生物数据的系统发育分析方法
  9. arcgis 中label feature太长换行_MapGIS转换为ArcGIS小结
  10. R语言数据包自带数据集之ToothGrowth数据集字段解释、数据导入实战