submit和execute都是 ExecutorService 的方法,都是添加线程到线程池中. 区别 三个区别: 1.接收的参数不一样 2.submit有返回值,而execute没有 Method submit extends base method Executor.execute by creating and returning a Future that can be used to cancel execution and/or wait for completion. 用到返回值…
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动.调度.管理线程的一大堆API了.在Java5以后,通过Executor来启动线程比用Thread的start()更好.在新特征中,可以很容易控制线程的启动.执行和关闭过程,还可以很容易使用线程池的特性.   一.创建任务   任务就是一个实现了Runnable接口的类. 创建的时候实run方法即可.   二.执行任务   通过java.util.concurrent.ExecutorService接口对象来执行任务,该接口对…
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动.调度.管理线程的一大堆API了.在Java5以后,通过Executor来启动线程比用Thread的start()更好.在新特征中,可以很容易控制线程的启动.执行和关闭过程,还可以很容易使用线程池的特性. 一.创建任务 任务就是一个实现了Runnable接口的类. 创建的时候实run方法即可. 二.执行任务 通过java.util.concurrent.ExecutorService接口对象来执行任务,该接口对象通过工具类ja…
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动.调度.管理线程的一大堆API了.在Java5以后,通过Executor来启动线程比用Thread的start()更好.在新特征中,可以很容易控制线程的启动.执行和关闭过程,还可以很容易使用线程池的特性.   一.创建任务   任务就是一个实现了Runnable接口的类. 创建的时候实run方法即可.   二.执行任务   通过java.util.concurrent.ExecutorService接口对象来执行任务,该接口对…
在使用java.util.concurrent下关于线程池一些类的时候,相信很多人和我一样,总是分不清submit()和execute()的区别,今天从源码方面分析总结一下. 通常,我们通过Executors这个工具类提供多种方法来创建适合不同场景的线程池,这里就不一一介绍了. 例如,创建可缓存线程池,Executors.newCachedThreadPool(),源码如下: public static ExecutorService newCachedThreadPool() { return…
线程池中 submit()和 execute()方法有什么区别?(未完成)…
execute(Runnable x) 没有返回值.可以执行任务,但无法判断任务是否成功完成. submit(Runnable x) 返回一个future.可以用这个future来判断任务是否成功完成. 在Java5之后,任务分两类:一类是实现了Runnable接口的类,一类是实现了Callable接口的类. 两者都可以被ExecutorService执行 Future future = pool.submit(new RunnableTest("Task2"));          …
(1)可以接受的任务类型 submit: execute: 可以看出: execute只能接受Runnable类型的任务 submit不管是Runnable还是Callable类型的任务都可以接受,但是Runnable返回值均为void,所以使用Future的get()获得的还是null (2)返回值 由Callable和Runnable的区别可知: execute没有返回值 submit有返回值,所以需要返回值的时候必须使用submit (3)异常 1.execute中抛出异常 execute…
1.可以接受的任务类型 submit: execute: 可以看出: execute只能接受Runnable类型的任务 submit不管是Runnable还是Callable类型的任务都可以接受,但是Runnable返回值均为void,所以使用Future的get()获得的还是null 2.返回值 由Callable和Runnable的区别可知: execute没有返回值 submit有返回值,所以需要返回值的时候必须使用submit 3.异常 1.execute中抛出异常 execute中的是…
在线程池里提交任务经常见到submit与execute,如何选择,傻傻分不清楚.那么他们俩有什么区别,使用场景是什么?这篇博客将会介绍. 1.方法定义 void execute(Runnable command); Future<T> submit(Callable<T> task); Future<T> submit(Runnable task, T result); Future<?> submit(Runnable task); 2.使用上的区别 2.…