从零实现一个高并发内存池(1)--- 项目介绍

大家好,从这一期博客开始,我将带领大家从零开始实现一个 C++ 标准项目 --- 高并发内存池,该项目汲取了谷歌 tcmalloc 的精华,实现一个简化版的高并发内存池。

一:项目描述

当前项目是要去实现一个高并发的内存池 ,他的原型是 google 的一个开源项目 tcmalloctcmalloc 全称 Thread-Caching Malloc,即线程缓存的 malloc,实现了高效率的多线程内存管理,用于替代系统提供的内存分配相关的函数(malloc、free)。

相比 malloc,tcmalloc 在多线程环境下可以作为更高效的内存管理方式。

**当前我这个项目是要把 tcmalloc 最核心的框架简化出来之后,模拟实现出一个自己的高并发内存池,**目的就是去学习 tcmalloc 的精华,感受我们和高手之间的差距,这种方式有点类似于 C++ STL 的学习,但是相比于 STL 容器部分,tcmalloc 的代码量和复杂度上升了很多,但是,难度的上升,我们的收获和成长也会同步上升。

另一方面,tcmalloc 是全球顶级大厂 google 开源的,可以认为是当时最顶尖的 C++ 高手写出来的,他的知名度也是非常高的,不少公司都在使用它,Go 语言直接用它做了自己的内存分配器。所以很多程序员是熟悉这一个项目的,那么有好处也会有坏处。好处就是把这个项目理解扎实了,会很受面试官的认可。坏处就是面试官可能也比较熟悉这一个项目,对项目会问的比较深,比较细。如果你对项目掌握的不扎实,那么就容易碰钉子。

二:项目知识需求

这个项目会用到 C/C++ 语言、数据结构(链表、哈希桶)、Linux操作系统环境、进程、线程、操作系统内存管理、单例模式、多线程、互斥锁等等方面的知识。难度较高。

三:什么是内存池

1. 池化技术

2. 内存池

3. 内存池主要解决的问题

4. malloc

相关推荐
一拳一个呆瓜8 小时前
【STL】iostream 编程:使用提取运算符
c++·stl
我不是懒洋洋9 小时前
从零实现一个分布式日志平台:ELK的核心设计
c++
神仙别闹9 小时前
基于QT(C++)实现Windows 自启动项查看和分析
c++·windows·qt
WWTYYDS_66610 小时前
ProtoBuf超详细使用教程
c++
野生风长10 小时前
c++类和对象(this指针,重载operator,习题总结)
java·开发语言·c++
雪的季节10 小时前
Python「假多态」与 C++「真多态」的核心区别
开发语言·c++
zmzb010310 小时前
C++课后习题训练记录Day166
开发语言·c++
皓月斯语10 小时前
程序设计语言的特点
开发语言·数据结构·c++
邪修king11 小时前
C++ 进阶终章:异常机制与智能指针全解 —— 从错误处理到 RAII 资源管理,打通现代 C++ 的核心命脉
android·数据结构·c++
梓䈑16 小时前
【算法题攻略】BFS 解决FloodFill 算法、最短路问题、多源BFS 和 拓扑排序
c++·算法·宽度优先