首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    顺序表的定义_顺序表的逻辑顺序和物理顺序

    来看一个生活中的例子:周末和朋友一起吃火锅,人非常多,我们需要在等候区等候,这个等候区就与顺序表有非常多的相似之处,借助它去理解顺序表的特点。首先,在等候区有非常多的椅子,这些椅子往往是排成一排连续排放的,中间不会空出很大的空间造成浪费。这就与在顺序表中选取存储单元的方法是一样的,我们会选取一段地址连续的存储单元去存放顺序表。接着工作人员会安排我们在椅子上连续的坐下等候。在存储单元当中去进行数据的存放是一样的,也是依次地存放线性表当中的数据元素,中间也不会空出许多存储单元造成空间的浪费。最后结伴而行的朋友也会坐在相邻的椅子上,这与顺序表的存放是相同的。在逻辑上相邻的两个元素在物理位置上也要保证它相邻,也会把它存放在相邻的存储单元上。在这个例子当中,其实椅子就代表着存储单元,而每一个等候的人就是要存放的数据元素。来总结一下顺序表的特点:

    01

    【项目设计】高并发内存池

    1. 本项目基于google公司的开源项目tcmalloc作为背景,简化实现一个高并发内存池,用该项目可以替代传统的malloc free函数来申请和释放内存,malloc和free作为我们最开始接触内存管理的元老级函数是在熟悉不过的了,有人说已经有malloc和free这样的内存管理函数了,我们搞一个tcmalloc真的有意义吗?其实不然,像malloc和free这种的函数是通用级别的,而通用的东西往往都带有一个特性,那就是适用性强,可移植性强,但是随之而带来的缺点就是针对性不够明显,比如对于某些高并发项目场景,项目内的线程数量众多,不断的调用malloc,可能会涉及到频繁的加锁和解锁,这对于项目性能的影响是不可小觑的,所以在某些高并发场景,同时对性能要求又高的情况下,malloc和free就显的没那么能打了,此时google公司召集了一批顶尖的cpp高手写出来了tcmalloc这样高效的内存管理项目,而我们的这个项目只是从tcmalloc里面摘取了精华部分,目的就是学习和理解高效的内存管理应该是什么样子的,而不是造一个更好的轮子出来。

    00
    领券