From db0ab03d120c14e604abceddd2687a978016047b Mon Sep 17 00:00:00 2001 From: Joe <736777445@qq.com> Date: Fri, 5 Apr 2019 15:00:33 +0800 Subject: [PATCH] =?UTF-8?q?Update=2080.=20executor=20=E3=80=81task=20?= =?UTF-8?q?=E5=92=8C=20stream=20=E4=BC=98=E5=85=88=E4=BA=8E=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/notes/80. executor 、task 和 stream 优先于线程.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/notes/80. executor 、task 和 stream 优先于线程.md b/docs/notes/80. executor 、task 和 stream 优先于线程.md index 400b5bd..a4bc367 100644 --- a/docs/notes/80. executor 、task 和 stream 优先于线程.md +++ b/docs/notes/80. executor 、task 和 stream 优先于线程.md @@ -1,6 +1,6 @@ # 80. executor 、task 和 stream 优先于线程 -  本书第 1 版中阐述了简单的工作队列( work queue)[Bloch01 ,详见第 49 条]的代码。这个类允许客户端按队列等待由后台线程异步处理的工作项目。当不再需要这个工作队列时,客户端可以调用一个方法,让后台线程在完成了已经在队列中的所有工作之后,优雅地终止自己。这个实现几乎就像一件玩具,但即使如此,它还是需要一整页精细的代码,如果你实现的不对,就容易出现安全问题或者导致活性失败。幸运的是,你再也不需要编写这样的代码了。 +  本书第 1 版中阐述了简单的工作队列(work queue)[Bloch01 ,详见第 49 条]的代码。这个类允许客户端按队列等待由后台线程异步处理的工作项目。当不再需要这个工作队列时,客户端可以调用一个方法,让后台线程在完成了已经在队列中的所有工作之后,优雅地终止自己。这个实现几乎就像一件玩具,但即使如此,它还是需要一整页精细的代码,如果你实现的不对,就容易出现安全问题或者导致活性失败。幸运的是,你再也不需要编写这样的代码了。   到本书第二版出版的时候, Java 平台中已经增加了 java.util.concurrent 。这个字包中包含了一个 Executor Framework 它是一个很灵活的基于接口的任务执行工具。它创建了一个在各方面都比本书第一版更好的工作队列,却只需要这一行代码: