这是几年前的一道面试题了,网上的答案一般都是1. execute只能提交Runnable类型的任务,没有返回值,而submit既能提交Runnable类型任务也能提交Callable类型任务,返回Future类型。 2. execute方法提交的任务异常是直接抛出的,而submit方法是是捕获了异常的,当调用FutureTask的get方法时,才会抛出异常。我们可能看过n多次但又忘了n多加1次,那
转载 2023-09-20 22:41:19
64阅读
Java - 线程池中submit和execute的区别前言一. 基本介绍和案例测试1.1 案例测试1.2 execute的异常处理和注意点1.2.1 重写 afterExecute 真的可行吗?1.2.2 实现 UncaughtExceptionHandler 接口1.3 submit 对于任务的封装(包括异常)1.3.1 异步任务的封装1.3.2 任务结果的阻塞获取二. 总结 前言大家在平时
转载 2023-09-03 20:17:36
66阅读
为什么要使用线程如果有非常的多的任务需要多线程来完成,且每个线程执行时间不会太长,这样频繁的创建和销毁线程,让效率降低。有了线程就不用创建更多的线程来完成任务,因为线程可以重用。线程维护一个队列,队列中保存着处于等待(空闲)状态的线程。不用每次都创建新的线程Java中有四种类型的线程newFixedThreadPool: 创建一个指定工作线程数量的线程。每当提交一个任务就创建一个工作线程
在上一篇《并发编程(十一)—— Java 线程 实现原理与源码深度解析(一)》中提到了线程ThreadPoolExecutor的原理以及它的execute方法。这篇文章是接着上一篇文章写的,如果你没有阅读上一篇文章,建议你去读读。本文解析ThreadPoolExecutor#submit。  对于一个任务的执行有时我们不需要它返回结果,但是有我们需要它的返回执行结果。对于线程来讲,如果不需要它
转载 2024-07-24 06:55:46
20阅读
一、线程的概念        顾名思义就是事先准备一个池子(线程),初始化一些线程,当使用可以快速调用,不用再初始化线程,使用完成后,不再销毁该线程,归还到线程,方便后面复用。节省创建和销毁线程资源,提高线程使用效率。二、线程的好处      &nbs
转载 2023-11-24 09:53:18
108阅读
1、execute和submit的区别提交任务的类型:execute和submit都属于线程的方法,execute只能提交Runnable类型的任务submit既能提交Runnable类型任务也能提交Callable类型任务。异常:execute会直接抛出任务执行时的异常,可以用try、catch来捕获,和普通线程的处理方式完全一致submit会吃掉异常,可通过Future的get方法将任务执行
转载 2023-11-30 13:50:45
266阅读
文章目录简介方法来源不同接收的参数不同返回值不同异常的处理 简介在线程的使用中,我们一般用ThreadPoolExecutor来创建线程,创建好线程后会将任务提交给线程来执行。在提交任务的时候,JDK为我们提供了两种不同的提交方式,分别是submit()和excute(),那么它们两者之间有什么不同呢?相互之间有什么关系呢?下面简单的介绍下方法来源不同execut()是在线程的顶级接口
在上一文中,主要介绍了创建线程的方法,以及java提供的线程管理线程的几个方法。在本文中我们主要介绍线程执行任务。上文中介绍四种创建线程方法,但是返回的都是一个 接口ExecutorService,该接口继承自Executor。Executor中只定义了一个方法来执行任务,在ExecutorService中,正如其名字的一样,定义了一个服务,定义了完整的线程的行为,可以接受提交任务、执行
JAVA线程(二)--线程 一、线程概念 顾名思义,线程是管理线程的池子。使用线程有以下优点:
转载 2023-05-24 22:44:53
634阅读
线程、Lambda表达式】主要内容线程Lambda表达式教学目标多个线程要处理同一个资源,多个线程的执行任务时不同线程间通信的实现:等待唤醒机制一个线程执行了某些规则的代码后进入等待(wait),其他线程执行完指定规则的代码后进行唤醒该线程(notify notifyAll)等待:wait , wait( long time) 唤醒: notify notifyAll水池—>线程(教练
转载 2024-06-27 21:14:33
51阅读
深夜学习,发现ThreadPoolExecutor里面一个小知识点,故开热点连wifi怒写submit与execute方法的区别。1.问题的来源在看书的时候,涉及到java线程问题的时候常常面临这样一个问题。当定义了一个Runnable对象想提交到线程池里面总是会看到不同的提交方法,产生的尬题如下:public class ThreadPoolDemo { public static c
线程的作用 :1. 避免大量的线程强占资源 2. 避免大量的线程创建和销毁带来的开销线程的原理 :创建线程的时候,可以使用executors的静态方法,也可以使用new ThreadPoolExecutor的方式手动创建线程,通过在线程池中指定参数达到创建不同类型的线程的效果其中,executors底层其实也是调用的new ThreadPoolExecutor()的方式创建的,是对不同线
转载 2023-11-07 00:12:42
39阅读
目录:类图submit方法(RunnableFuture接口newTaskFor方法)FutureTask类 声明。核心属性:任务运行状态、核心属性。构造器。核心方法。类图上节课我们说到了execute方法,此方法虽然可以将任务让如线程池中运行,但却不能返回线程执行的结果,所以针对于这种情况JUC提供了submit方法用于获取执行结果。首先我们来看看submit方法所处的类及其类结构:1 Thre
转载 2024-05-29 00:09:46
47阅读
血的教训之背景:使用线程对存量数据进行迁移,但是总有一批数据迁移失败,无异常日志打印作者:plz叫我红领巾   凶案起因听说 parallelStream 并行流是个好东西,由于日常开发stream串行流的场景比较多,这次需要写迁移程序刚好可以用得上,那还不赶紧拿来装*一下,此时不装更待何时。机智的我还知道在 JVM 的后台,使用通用的 fork/join 来完成上述功能,
转载 2024-07-22 10:08:16
355阅读
在上一篇《并发编程(十一)—— Java 线程 实现原理与源码深度解析(一)》中提到了线程ThreadPoolExecutor的原理以及它的execute方法。这篇文章是接着上一篇文章写的,如果你没有阅读上一篇文章,建议你去读读。本文解析ThreadPoolExecutor#submit。  对于一个任务的执行有时我们不需要它返回结果,但是有我们需要它的返回执行结果。对于线程来讲,如果不需要它
一、概述execute和submit都是线程池中执行任务的方法。execute是Executor接口中的方法public interface Executor { void execute(Runnable command); }submit是ExecuteService接口中的方法。public interface ExecutorService extends Executor {
转载 2023-06-26 20:39:56
98阅读
线程池中的execute方法大家都不陌生,即开启线程执行池中的任务。还有一个方法submit也可以做到,它的功能是提交指定的任务去执行并且返回Future对象,即执行的结果。下面简要介绍一下两者的三个区别:1、接收的参数不一样2、submit有返回值,而execute没有用到返回值的例子,比如说我有很多个做validation的task,我希望所有的task执行完,然后每个task告诉我它的执行结
原创 2023-02-21 00:34:33
161阅读
1. execute 和 submit 的区别 前面说了还需要介绍多线程中使用 execute 和 submit
原创 2023-04-09 09:33:02
125阅读
代码示例:public class ThreadPool_Test { public static void main(String[] args) throws InterruptedException, ExecutionException { ExecutorService pool = Executors.newCachedThreadPool(); po
原创 2022-11-15 15:05:52
169阅读
线程池中的execute方法大家都不陌生,即开启线程执行池中的任务。还有一个方法submit也可以做到,它的功能是提交指定的任务去执行并且返回Future对象,即执行的结果。下面简要介绍一下两者的三个区别: 1、接收的参数不一样 public class MainTest { public stat
转载 2020-05-07 00:19:00
156阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5