From 40a601459535384124ca0aba88052755e9a9ec08 Mon Sep 17 00:00:00 2001 From: LIU Date: Sun, 13 Dec 2020 17:30:14 +0800 Subject: [PATCH] =?UTF-8?q?Update=20java=E7=BA=BF=E7=A8=8B=E6=B1=A0?= =?UTF-8?q?=E5=AD=A6=E4=B9=A0=E6=80=BB=E7=BB=93.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/multi-thread/java线程池学习总结.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/multi-thread/java线程池学习总结.md b/docs/java/multi-thread/java线程池学习总结.md index 890588a2..99e4e8d1 100644 --- a/docs/java/multi-thread/java线程池学习总结.md +++ b/docs/java/multi-thread/java线程池学习总结.md @@ -543,7 +543,7 @@ public interface Callable { #### 4.3.2 `execute()` vs `submit()` 1. **`execute()`方法用于提交不需要返回值的任务,所以无法判断任务是否被线程池执行成功与否;** -2. **`submit()`方法用于提交需要返回值的任务。线程池会返回一个 `Future` 类型的对象,通过这个 `Future` 对象可以判断任务是否执行成功**,并且可以通过 `Future` 的 `get()`方法来获取返回值,`get()`方法会阻塞当前线程直到任务完成,而使用 `get(long timeout,TimeUnit unit)`方法则会阻塞当前线程一段时间后立即返回,这时候有可能任务没有执行完。 +2. **`submit()`方法用于提交需要返回值的任务。线程池会返回一个 `Future` 类型的对象,通过这个 `Future` 对象可以判断任务是否执行成功** ,并且可以通过 `Future` 的 `get()`方法来获取返回值,`get()`方法会阻塞当前线程直到任务完成,而使用 `get(long timeout,TimeUnit unit)`方法则会阻塞当前线程一段时间后立即返回,这时候有可能任务没有执行完。 我们以**`AbstractExecutorService`**接口中的一个 `submit` 方法为例子来看看源代码: