Skip to content

Commit

Permalink
Update java线程池学习总结.md
Browse files Browse the repository at this point in the history
文本问题处理
  • Loading branch information
Aaron-Ge authored Sep 28, 2021
1 parent 302c115 commit 56d02d2
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions docs/java/multi-thread/java线程池学习总结.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@

## 一 使用线程池的好处

> **池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。**
> **池化技术想必大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。**
**线程池**提供了一种限制和管理资源(包括执行一个任务)。 每个**线程池**还维护一些基本统计信息,例如已完成任务的数量。

Expand Down Expand Up @@ -184,7 +184,7 @@ public class ScheduledThreadPoolExecutor
### 3.2 推荐使用 `ThreadPoolExecutor` 构造函数创建线程池

**在《阿里巴巴 Java 开发手册》“并发处理”这一章节,明确指出线程资源必须通过线程池提供,不允许在应用中自行显示创建线程**
**在《阿里巴巴 Java 开发手册》“并发处理”这一章节,明确指出线程资源必须通过线程池提供,不允许在应用中自行显式创建线程**

**为什么呢?**

Expand All @@ -199,6 +199,7 @@ public class ScheduledThreadPoolExecutor
**方式一:通过`ThreadPoolExecutor`构造函数实现(推荐)**
![通过构造方法实现](images/java线程池学习总结/threadpoolexecutor构造函数.png)

**方式二:通过 Executor 框架的工具类 Executors 来实现**
我们可以创建三种类型的 ThreadPoolExecutor:

Expand Down Expand Up @@ -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 操作完成上。

## 八 参考

Expand Down

0 comments on commit 56d02d2

Please sign in to comment.