负责处理submit()方法提交的任务的线程,当任务结束后会自动返回给线程池并等待下一个任务,从而避免了重复创建和销毁线程的开销。而execute()方法则不同,它的任务直接在调用execute()方法的调用线程(通常是主线程)中运行,如果当前没有可用线程,则会立即创建新的线程来处理该任务,并在完成任务后销毁线程。5、消...
execute会导致执行的线程销毁,线程池会重新创建一个新的线程来执行其他任务,这样就会导致线程池的线程得不到复用。 submit不会导致执行的线程销毁,但是你不future.get()你永远不会知道这个异常。 4.总结 4.1如果任务有返回值,有抛出异常,使用submit 4.2如果要判断任务执行完,以便进行其他处理,使用submit 4.3使用submit...
线程池中的execute方法大家都不陌生,即开启线程执行池中的任务。还有一个方法submit也可以做到,它的功能是提交指定的任务去执行并且返回Future对象,即执行的结果。下面简要介绍一下两者的三个区别: 1、接收的参数不一样 1 2 3 4 5 6 7 8 9 10 11 ...
使用execute方法时,可以简单地将任务提交给线程池执行,但无法获取任务的执行结果。而使用submit方法时,可以获取任务的执行结果,并且可以通过Future对象进行异常处理。 总结: execute方法是一种简单的提交方式,用于提交无返回值的Runnable任务;而submit方法可以提交Runnable任务和Callable任务,并返回一个表示任务结果...
一、线程池提交execute和submit有什么区别? 1. execute 用于提交不需要返回值的任务 threadsPool.execute(newRunnable(){@Overridepublicvoidrun(){// TODO Auto-generated method stub }}); 1. 2. 3. 4. 2. submit()方法用于提交需要返回值的任务。线程池会返回一个future类型的对象,通过这个 future对象可以...
线程池中submit()和execute()方法的区别:1.submit有返回值,而execute没有。2.submit()的返回值Future调用get方法时,可以捕获处理异常。3.submit方便...
在Java中,线程池是管理线程的一种方式,它可以有效地控制线程的数量,提高系统的性能,线程池中的submit()和execute()方法都是用来提交任务到线程池中执行的,但是它们之间有一些区别。 1、返回值不同 submit()方法返回一个Future对象,这个对象代表了一个异步计算的结果,通过这个Future对象,我们可以知道任务是否完成,以及...
1、execute和submit的区别 提交任务的类型: execute和submit都属于线程池的方法,execute只能提交Runnable类型的任务 submit既能提交Runnable类型任务也能提交Callable类型任务。 异常: execute会直接抛出任务执行时的异常,可以用try、catch来捕获,和普通线程的处理方式完全一致 ...
3. execute方法的作用及其与submit的区别 execute方法也是ExecutorService接口中的一个方法,用于提交一个Runnable任务给线程池执行。与submit方法不同,execute方法没有返回值,也不抛出异常(如果线程池已关闭或任务被拒绝,则任务将被丢弃)。execute方法适用于那些不需要返回结果或处理异常的任务。 submit和execute方法的主要区...