一种数据缓存方法和电子设备与流程

文档序号:28592539发布日期:2022-01-22 09:07阅读:来源:国知局

技术特征:
1.一种数据缓存方法,应用于电子设备,其特征在于,所述方法包括:基于n个内存块建立环形链表,基于所述环形链表执行针对内存块的写入和/或读取数据的处理;其中,n为大于等于2的整数;所述环形链表中包含的n个内存块的存储容量大于所述电子设备中其他内存块的存储容量;其中,基于所述环形链表执行写入和/或读取数据的处理包括以下至少之一:在写入数据时,若所述环形链表对应的所述内存块已写满,则从空闲列表中选取空闲内存块作为环形链表中的新增内存块,在所述新增内存块中写入数据;在读取数据时,从所述环形链表对应的至少一个已写满的所述内存块中取出第一内存块,并从所述第一内存块中读取数据。2.根据权利要求1所述的数据缓存方法,其特征在于,所述方法还包括:写入数据时,判断写指针指向的第二内存块是否已写满;若未写满,则在所述第二内存块中写入数据;其中,所述写指针用于指向内存块。3.根据权利要求1所述的数据缓存方法,其特征在于,所述方法还包括:针对所述环形链表设置一个互斥锁;其中,所述互斥锁,用于为线程提供从所述环形链表中取出已写满的内存块的权限。4.根据权利要求3所述的数据缓存方法,其特征在于,所述从所述环形链表对应的至少一个已写满的所述内存块中取出第一内存块,包括:当读指针指向的所述第一内存块被写满时,控制第一线程获取针对所述环形链表设置的所述互斥锁;其中,所述读指针用于指向内存块;所述第一线程为多个线程中之一;通过所述第一线程从所述环形链表中取出读指针指向的第一内存块对应的地址信息,删除所述环形链表包含的所述第一内存块所对应的地址信息。5.根据权利要求4所述的数据缓存方法,其特征在于,所述从所述第一内存块中读取数据,包括:将所述第一线程获取的针对所述环形链表的所述互斥锁释放,并基于所述第一内存块对应的地址信息读取所述第一内存块中的数据。6.根据权利要求5所述的数据缓存方法,其特征在于,所述方法还包括:当所述第一线程完成读取所述第一内存块后,判断所述环形链表中包含的空内存块的比例是否大于等于第一阈值;若大于等于所述第一阈值,则将所述第一内存块所对应的地址信息添加到所述空闲列表;否则,将所述第一内存块所对应的地址信息插入到所述环形链表。7.根据权利要求1所述的数据缓存方法,其特征在于,所述方法还包括:若内存块中已写入的数据的大小与所述内存块的最大存储容量相等,则确定所述内存块为已写满的内存块;或者,若内存块中已写入的数据大小小于所述内存块的最大存储容量,并且所述内存块未写入新的数据的时长超过第一预设时长,则将所述内存块作为已写满的内存块。8.一种电子设备,其特征在于,所述电子设备包括:链表生成单元,链表处理单元;所述链表生成单元,用于基于n个内存块建立环形链表;其中,n为大于等于2的整数;所述环形链表中包含的n个内存块的存储容量大于其他内存块的存储容量;所述链表处理单元,包括写单元和读单元;用于基于所述环形链表执行写入和/或读取
数据的处理至少之一:其中,所述写单元,用于在写入数据时,若所述环形链表对应的所述内存块已写满,则从空闲列表中选取空闲内存块作为环形链表中的新增内存块,在所述新增内存块中写入数据;所述读单元,用于在读取数据时,从所述环形链表对应的至少一个已写满的所述内存块中取出第一内存块,并从所述第一内存块中读取数据。9.根据权利要求8所述的电子设备,其特征在于,所述写单元,还用于写入数据时,判断写指针指向的第二内存块是否已写满;若未写满,则在所述第二内存块中写入数据;其中,所述写指针用于指向内存块。10.根据权利要求8所述的电子设备,其特征在于,所述读单元,还用于针对所述环形链表设置一个互斥锁;其中,所述互斥锁,用于为线程提供从所述环形链表中取出已写满的内存块的权限。11.根据权利要求10所述的电子设备,其特征在于,所述读单元,还用于当读指针指向的所述第一内存块被写满时,控制第一线程获取针对所述环形链表设置的所述互斥锁;其中,所述读指针用于指向内存块;所述第一线程为多个线程中之一;通过所述第一线程从所述环形链表中取出读指针指向的第一内存块对应的地址信息,删除所述环形链表包含的所述第一内存块所对应的地址信息。12.根据权利要求11所述的电子设备,其特征在于,所述读单元,还用于将所述第一线程获取的针对所述环形链表的所述互斥锁释放,并基于所述第一内存块对应的地址信息读取所述第一内存块中的数据。13.根据权利要求12所述的电子设备,其特征在于,所述读单元,还用于当所述第一线程完成读取所述第一内存块后,判断所述环形链表中包含的空内存块的比例是否大于等于第一阈值;若大于等于所述第一阈值,则将所述第一内存块所对应的地址信息添加到所述空闲列表;否则,将所述第一内存块所对应的地址信息插入到所述环形链表。14.根据权利要求8所述的电子设备,其特征在于,所述电子设备还包括判定单元;所述判定单元,用于若内存块中已写入的数据的大小与所述内存块的最大存储容量相等,则确定所述内存块为已写满的内存块;或者,若内存块中已写入的数据大小小于所述内存块的最大存储容量,并且所述内存块未写入新的数据的时长超过第一预设时长,则将所述内存块作为已写满的内存块。

技术总结
本发明公开一种数据缓存方法和电子设备,包括:基于N个内存块建立环形链表;其中,N为大于等于2的整数;所述环形链表中包含的N个内存块的存储容量大于所述电子设备中其他内存块的存储容量;基于所述环形链表执行写入和/或读取数据的处理,至少包括以下处理方式之一:在写入数据时,若所述环形链表对应的所述内存块已写满,则从空闲列表中选取空闲内存块作为环形链表中的新增内存块,在所述新增内存块中写入数据;在读取数据时,从所述环形链表对应的至少一个已写满的所述内存块中取出第一内存块,并从所述第一内存块中读取数据。如此,实现了对环形链表的动态扩展,降低了释放内存块的频率,提高了数据缓存的性能。提高了数据缓存的性能。提高了数据缓存的性能。


技术研发人员:刘肃权
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2020.07.20
技术公布日:2022/1/21
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1