不积跬步,无以至千里。不积小流,无以成江海。
submit 与 execute区别
1 |
|
1 |
|
任务类型: execute 只能接受 Runnable 类型的任务,submit 可以接受 Runnable、Callable 类型的任务。
返回值: execute 没有返回值,submit 有返回值。但接受 Runnable 任务时返回值均为 void,所以使用 Future 的 get() 获得的还是 null。
异常: execute 中的是 Runnable 接口的实现,所以只能使用 try、catch 来捕获 CheckedException,通过实现 UncaughtExceptionHande 接口处理UncheckedException。
submit 中不管提交的是 Runnable 还是 Callable 类型的任务,如果不对返回值 Future 调用 get() 方法,都会吃掉异常。
Runnable 与 Callable 区别
1 |
|
1 |
|
Callable 拥有返回值且能够抛出 Exception 异常,所以不管是 CheckedException 还是 UncheckedException,直接抛出即可。下面示例演示了如何创建并执行Callable类型的任务。
1 |
|