线程池的execute和submit
时间: 2023-04-22 13:05:45 浏览: 73
线程池的execute和submit都是用来提交任务到线程池中执行的方法。execute方法用于提交Runnable类型的任务,submit方法用于提交Callable或Runnable类型的任务,并且可以返回执行结果。
execute方法会立即将任务提交到线程池中执行,而submit方法会返回一个Future对象,可以通过该对象获取任务的执行结果。另外,submit方法还可以指定任务的执行超时时间。
总的来说,execute方法适用于不需要获取任务执行结果的情况,而submit方法适用于需要获取任务执行结果或者需要控制任务执行超时时间的情况。
相关问题
线程池的submit和execute
线程池提供了两种方法来提交线程任务:submit()和execute()。这两种方法都可以用来提交一个Runnable或Callable任务到线程池中执行。区别在于submit()方法可以返回一个Future对象,可以用来获取任务的执行结果或取消任务的执行,而execute()方法没有返回值。
submit()方法封装了execute()方法,它将任务包装成一个FutureTask对象,并将其提交给线程池执行。FutureTask是一个可以取消的异步计算,它实现了RunnableFuture接口,同时又实现了Future接口,所以submit()方法可以返回一个Future对象。
虽然submit()方法比execute()方法功能更强大,但是在没有特殊需求的情况下,应该优先选择execute()方法。因为execute()方法的效率更高,并且不会吞掉任务执行过程中抛出的异常。
java线程池submit和execute
Java线程池中的submit和execute都是用来提交任务的方法,但是它们有一些不同之处。
submit方法会返回一个Future对象,可以用来获取任务的执行结果或者取消任务的执行。而execute方法则没有返回值,只是简单地提交任务并让线程池去执行。
另外,submit方法可以接受Callable和Runnable两种类型的任务,而execute方法只能接受Runnable类型的任务。
总的来说,如果需要获取任务的执行结果或者取消任务的执行,可以使用submit方法;如果只是简单地提交任务并让线程池去执行,可以使用execute方法。