关于线程池

简介: 关于线程池

是什么?

线程池是一种多线程处理形式

作用:

减少每次获取和结束资源的消耗,提高对资源的利用率。

线程池,顾名思义就是事先创建若干个可执行的线程放入一个容器(池)中,需要的时候从池中获取线程,而不用自行创建,使用完之后不需要销毁,而是放回池中,从而减少创建和销毁线程对象的开销。

假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。

线程池的五种状态:

1.RUNNING:线程池被创建之后进入RUNNING状态,这个状态下线程池

2.SHUTDOWN:线程池不接收新的任务,但能处理已添加的任务

3.STOP:不仅不接收新任务,已添加的任务也不会处理,并且正在执行的任务也会中断

4.TIDYING:线程池在所有的任务已经终止,任务数量为0的时候,变成TIDYING,此时会执行terminated()函数

5.TERMINATED:在钩子函数terminated()执行完成之后变成TERMINATED状态

常见线程池

1.newSingleThreadExecutor

单个线程的线程池,就是说线程池中每次只有一个线程在工作,单线程串行执行任务

2.newFixedThreadExecutor(n)

固定数量的线程池,每提交一个任务就是一个线程,直到达到线程池的最大数量,然后后面进入等待队列直到前面的任务完成才继续执行

池化技术的应用:

(提前把资源放好,以供使用)

1.数据库连接池子

2.http连接池

3.redis

相关文章
|
2月前
|
消息中间件 Kubernetes Java
记两个有关线程池的小问题
最近小伙伴们找我查的问题里,有两个与线程池相关的,最终都是花了一些时间才揪出原因所在,做一下记录。
45 1
|
3月前
|
监控 Java API
如何快速地实现一个线程池
如何快速地实现一个线程池
27 0
|
4月前
|
算法 Java
线程池
【8月更文挑战第22天】
44 4
|
7月前
|
存储 Java 调度
浅谈线程池
浅谈线程池
43 1
|
7月前
|
缓存 Java API
厉害了,线程池就该这么玩
厉害了,线程池就该这么玩
65 0
|
缓存 Java 调度
线程池的介绍
线程池的介绍
|
存储 Java 调度
线程池使用
线程池使用
KeyAffinityExecutor 线程池
KeyAffinityExecutor 线程池
|
Java 调度
线程池 的一些事
线程池 的一些事
131 0
线程池 的一些事
|
监控 Java
关于线程池,你需要了解这些
1、 降低资源消耗;提高线程利用率,降低创建和销毁线程的消耗。 2、 提高响应速度;任务来了,直接有线程可用可执行,而不是先创建线程,再执行。 3、 提高线程的可管理性;线程是稀缺资源,使用线程池可以统一分配调优监控。
162 0
下一篇
DataWorks