From 56d02d2a8cc548cdfcac3b7095fe8f1d7ac70ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=AD=E7=94=B5=E9=AC=BC=E5=85=88=E7=94=9F?= <525032143@qq.com> Date: Tue, 28 Sep 2021 15:32:06 +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 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/java/multi-thread/java线程池学习总结.md b/docs/java/multi-thread/java线程池学习总结.md index 619cffe9..0eb08c0c 100644 --- a/docs/java/multi-thread/java线程池学习总结.md +++ b/docs/java/multi-thread/java线程池学习总结.md @@ -47,7 +47,7 @@ ## 一 使用线程池的好处 -> **池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。** +> **池化技术想必大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。** **线程池**提供了一种限制和管理资源(包括执行一个任务)。 每个**线程池**还维护一些基本统计信息,例如已完成任务的数量。 @@ -184,7 +184,7 @@ public class ScheduledThreadPoolExecutor ### 3.2 推荐使用 `ThreadPoolExecutor` 构造函数创建线程池 -**在《阿里巴巴 Java 开发手册》“并发处理”这一章节,明确指出线程资源必须通过线程池提供,不允许在应用中自行显示创建线程。** +**在《阿里巴巴 Java 开发手册》“并发处理”这一章节,明确指出线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。** **为什么呢?** @@ -199,6 +199,7 @@ public class ScheduledThreadPoolExecutor **方式一:通过`ThreadPoolExecutor`构造函数实现(推荐)** ![通过构造方法实现](images/java线程池学习总结/threadpoolexecutor构造函数.png) + **方式二:通过 Executor 框架的工具类 Executors 来实现** 我们可以创建三种类型的 ThreadPoolExecutor: @@ -879,7 +880,7 @@ Wed Nov 13 13:40:43 CST 2019::pool-1-thread-5 **如何判断是 CPU 密集任务还是 IO 密集任务?** -CPU 密集型简单理解就是利用 CPU 计算能力的任务比如你在内存中对大量数据进行排序。单凡涉及到网络读取,文件读取这类都是 IO 密集型,这类任务的特点是 CPU 计算耗费时间相比于等待 IO 操作完成的时间来说很少,大部分时间都花在了等待 IO 操作完成上。 +CPU 密集型简单理解就是利用 CPU 计算能力的任务比如你在内存中对大量数据进行排序。但凡涉及到网络读取,文件读取这类都是 IO 密集型,这类任务的特点是 CPU 计算耗费时间相比于等待 IO 操作完成的时间来说很少,大部分时间都花在了等待 IO 操作完成上。 ## 八 参考