📄 01
字号:
********************************************************************************
内存池函数声明于头文件 yc_memory.h 中,实现于文件 yc_memory.c 中。
********************************************************************************
1、void* pool_alloc( size_t bytes )
功能
向内存池中申请至少 bytes 个字节的内存块。
参数
bytes:向内存池中申请的字节数,该值可以为 0。
返回值
返回值为一个空指针,如果该指针等于 NULL,则表示申请失败;否则该指针指向一块
至少可以存储 bytes 个字节的内存块。
********************************************************************************
2、void pool_dealloc( void* ptr, size_t bytes )
功能
将内存块回收至内存池。
参数
ptr:指向要回收的内存块的指针;
bytes:要回收的内存块的大小,单位为字节。
备注:
如果内存块是由内存池分配的,函数只将内存块回收至内存池,而并不释放给系统。
********************************************************************************
3、void pool_free( void* ptr, size_t bytes )
功能
将内存块回收至内存池。
参数
ptr:指向要回收的内存块的指针;
bytes:要回收的内存块的大小,单位为字节。
备注:
函数先执行同 pool_dealloc 相同的操作,再遍历负责分配 bytes 大小的内存链,将
其中空闲的内存页释放给系统,该函数的执行速度比 pool_dealloc 要慢。
********************************************************************************
4、void pool_print( void )
功能
输出内存池。
********************************************************************************
5、size_t get_pool_lists_count( void )
功能
获取内存池中内存链的个数。
返回值
返回内存池中内存链的个数。
********************************************************************************
6、size_t get_pool_alloc_count( void )
功能
获取内存池执行分配的次数。
返回值
返回内存池执行分配的次数。
********************************************************************************
7、size_t get_pool_dealloc_count( void )
功能
获取内存池执行回收的次数。
返回值
返回内存池执行回收的次数。
********************************************************************************
8、void set_pool_lock( void (*lock)(size_t index) )
功能
设置在并行系统中使用的加锁函数。
参数
lock:原型声明为 void lock(size_t index) 的函数指针,加锁函数的 index 参
数是由内存池在运行时传递进来的内存链索引号,通过该索引,可以在加锁
函数中实现对不同的内存链分别加锁。
********************************************************************************
9、void set_pool_unlock( void (*unlock)(size_t index) )
功能
设置在并行系统中使用的解锁函数。
参数
unlock:原型声明为 void unlock(size_t index) 的函数指针,解锁函数的 index
参数是由内存池在运行时传递进来的内存链索引号,通过该索引,可以在
解锁函数中实现对不同的内存链分别解锁。
********************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -