page contents

执行 execute() 方法和 submit() 方法的区别是什么呢?

轩辕小不懂 发布于 2022-01-26 16:01
阅读 51
收藏 0
分类:Java开发
2991
Nen
Nen
- 程序员

1、 execute() 方法用于提交不需要返回值的任务,所以无法判断任务是否被线程池执行成功与否;

2、 submit() 方法用于提交需要返回值的任务。线程池会返回一个 Future 类型的对象,通过这个 Future 对象可以判断任务是否执行成功,并且可

以通过 Future 的 get() 方法来获取返回值,get() 方法会阻塞当前线程直到任务完成,而使用 get(long timeout,TimeUnit unit) 方法则会阻塞当前线

程一段时间后立即返回,这时候有可能任务没有执行完。

请先 登录 后评论