一、概念
池化技术指的是提前准备一些资源,在需要时可以重复使用这些预先准备的资源。
在系统开发过程中,我们经常会用到池化技术。通俗的讲,池化技术就是:把一些资源预先分配好,组织到对象池中,之后的业务使用资源从对象池中获取,使用完后放回到对象池中。这样做带来几个明显的好处:
-
资源重复使用, 减少了资源分配和释放过程中的系统消耗。比如,在IO密集型的服务器上,并发处理过程中的子线程或子进程的创建和销毁过程,带来的系统开销将是难以接受的。所以在业务实现上,通常把一些资源预先分配好,如线程池,数据库连接池,Redis连接池,HTTP连接池等,来减少系统消耗,提升系统性能。
-
可以对资源的整体使用做限制。这个好理解,相关资源预分配且只在预分配是生成,后续不再动态添加,从而限制了整个系统对资源的使用上限。类似一个令牌桶的功能。
-
池化技术分配对象池,通常会集中分配,这样有效避免了碎片化的问题。
池化技术简单点来说,就是提前保存大量的资源,以备不时之需。池化技术有两个特点,提前创建和重复利用。
二、应用
1. 线程池
线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。
为什么要预先创建若干线程,而不是在需要的时候再创建?
因为在数据量很大的条件下,某一时刻可能有大量的(上百个)并发请求,而线程创建的过程是比较耗时的,若此时对每个请求都新创建一个线程,那么会耗费大量的时间,造成拥塞。
2. 连接池
常见的数据库oracle、SQL s

最低0.47元/天 解锁文章
1006

被折叠的 条评论
为什么被折叠?



