内存池进程池线程池

Posted 静悟生慧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内存池进程池线程池相关的知识,希望对你有一定的参考价值。

首先介绍一个概念“池化技术 ”。池化技术 一言以蔽之就是:提前保存大量的资源,以备不时之需以及重复使用。

池化技术应用广泛,如内存池,线程池,连接池等等。内存池相关的内容,建议看看Apache、nginx等开源web服务器的内存池实现。

起因:由于在实际应用当中,分配内存、创建进程、线程都会设计到一些系统调用,系统调用需要导致程序从用户态切换到内核态,是非常耗时的操作。

          因此,当程序中需要频繁的进行内存申请释放,进程、线程创建销毁等操作时,通常会使用内存池、进程池、线程池技术来提升程序的性能。

线程池:线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当需要一个开辟一个线程去做具体的工作时,就会唤醒线程池中的某一个睡眠线程,

               让它去做具体工作,当工作完成后,线程又处于睡眠状态,而不是将线程销毁。

进程池与线程池同理。


内存池:内存池是指程序预先从操作系统申请一块足够大内存,此后,当程序中需要申请内存的时候,不是直接向操作系统申请,而是直接从内存池中获取;

               同理,当程序释放内存的时候,并不真正将内存返回给操作系统,而是返回内存池。当程序退出(或者特定时间)时,内存池才将之前申请的真正内存释放。

 

以上是关于内存池进程池线程池的主要内容,如果未能解决你的问题,请参考以下文章

每日一点内存池,进程池,线程池

内存池进程池线程池

python GIL锁进程池与线程池同步异步

GIL全局解释器锁和进程池.线程池

GIL 线程池与进程池 同步与异步

python 线程进程并发并行协程进程池互斥锁