execute和submit的区别
2024-10-26 14:56:50
michael007js
19
execute和submit的区别
execute和submit都属于线程池的方法,execute只能提交Runnable类型的任务,无返回值。而submit既能提交Runable类型的任务,返回值为null,也能提交Callable类型的任务,返回值为Future。
execute会直接抛出任务执行时异常,submit则不会抛出异常,但可以通过Future的get方法将任务执行时的异常重新抛出。
| 提交任务类型 | 是否抛异常 | 有无返回值 |
execute | Runnable类型 | 是 | 无 |
submit | Runnable类型 Callable类型 | 否,但Future的get方法可以将异常抛出 | Runnable类型的任务,返回值为nul Callable类型的任务,返回值为Future |