For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
高并发编程开发是目前大多数软件编程开发项目都会要求实现的一个编程需求,下面我们就通过案例分析来了解一下,高并发编程基础概念都有哪些。
1、池化技术
所谓池化技术,就是程序先向系统申请过量的资源,然后自己管理,当程序中需要申请内存时,不是直接向操作系统申请,而是直接从内存池中获取,释放内存时也不是将内存返回给操作系统,而是返回内存池中。
因为每次申请该资源都有较大的开销,这样提前申请好了,使用时就会非常快捷,能够大大提高程序运行效率。
在计算机中有很多使用这种池技术的地方,例如线程池、连接池等。
动态内存申请malloc
C++中动态申请内存都是通过malloc去申请的,但实际上我们并不是直接去堆中获取内存的,而malloc就是一个内存池。
malloc() 相当于向系统 “批发” 了一块较大的内存空间,然后“零售” 给程序使用,当全部使用完或者程序有大量内存需求时,再根据需求向操作系统申请内存。
定长内存池设计
2、设计思路
开辟内存:
使用malloc开辟一大块内存,让_memory指针指向这个大块内存
_memory 设置为char* 类型,是为了方便切割时_memory向后移动多少字节数。
申请内存:
将_memory强转为对应类型,然后赋值给对方,_memory指针向后移动对应字节数即可。
如果有存在已经切割好的小块内存,则优先使用小块内存。
释放内存:
用类型链表的结构来进行存储。
用当前小块内存的头4字节存储下一个小块内存的地址,后用_freeList指针指向一个小块内存的地址(并不是将内存释放给操作系统)
所以开辟内存时,开辟的内存大小必须大于或等于一个指针类型的大小。
代码位置:高并发内存池项目中的ObjectPool.h 文件。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。