提高内存池的并发效率

来源:互联网 发布:淘宝优质网店怎么通过 编辑:程序博客网 时间:2024/06/06 02:06

 正常情况下,使用一个链表保存多个内存块地址,

GetFreeBuf()时锁一下链表

FreeBuf()时锁一下链表

以保证链表资源共享不产生冲突

 

但是假如想再提高效率要怎么办呢

不同的操作系统,临界区效率不一样

假如锁与解锁效率比较低的话,

我们可以使用链表头锁(HeadLock)和链表尾锁来优化(TailLock)

 

简单讲就是GetFreeBuf()时调用HeadLock

FreeBuf()时调用TailLock

这样获取内存与释放内存可以并发使用,效率由此提升

原创粉丝点击