Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite754060

Browse files
committed
feat(并发编程):线程池原理内容补充
1 parent6b99966 commite754060

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

‎docs/并发编程/理解线程池.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
| 4| DiscardPolicy| 丢弃当前的线程任务而不做任何处理。如果系统允许在资源不足的情况相下丢弃部分任务,则这将是保障系统安全、稳定的一种很好的方案。|
7272
| 5| 自定义拒绝策略| 以上四种拒绝策略无法满足实际需要,用户可以扩展RejectedExecutionHandler接口实现拒绝策略。|
7373

74-
##5.5种常用的线程池
74+
##5.五种常用的线程池
7575

7676
| 序号| 名称| 说明|
7777
| :--:| :---------------------:| :--------------------------:|
@@ -81,8 +81,27 @@
8181
| 4| newSingleThreadExecutor| 单个线程的线程池|
8282
| 5| newWorkStealingPool| 足够大小的线程池,JDK1.8新增|
8383

84-
##6.线程池的好处
84+
##6. 向线程池提交任务
85+
86+
- execute()方法:当提交不需要返回值的任务,缺点无法判断任务是否被线程池执行成功;
87+
- submit()方法:当提交需要返回值的任务,此时线程池会返回一个future类型的对象,通过该对象可以判断线程池是否执行成功,并且可以通过调用该对象的get()方法获取返回值;
88+
89+
##7. 关闭线程池
90+
91+
​关闭线程池可以调用shutdown或者shutdownNow方法。区别如下:
92+
93+
- 共同点:
94+
- 它们的原理都是遍历线程池中的工作线程,然后逐个调用线程的interrupt方法来中断线程( 无法响应中断的任务可能永远无法终止)。
95+
- 不同点:
96+
- shutdownNow首先将线程池的状态设置为STOP,然后尝试停止所有的正在执行或暂停任务的线程。
97+
- shutdown只是将线程池的状态设置成SHOTDOWN状态,然后中断所有没有正在执行任务的线程。
98+
99+
**总结:通常调用shutdown方法来关闭线程池,如果任务不一定要执行完,则可以调用shutdownNow方法。**
100+
101+
##总结
102+
103+
**线程池的好处**
85104

86105
+ 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁的消耗。
87106
+ 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
88-
+ 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
107+
+ 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp