暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
基于共享内存的共享指针实现方法、装置、设备及介质_CN116775335A_上海沄熹科技有限公司.pdf
48
9页
0次
2024-04-25
免费下载
(19)国家知识产权局
(12)发明专利申请
(10)申请公布号
(43)申请公布日
(21)申请号 202310721220 .2
(22)申请日 2023 .06 .16
(71)申请人 上海沄熹科技有限公司
地址 200120 上海市浦东新区中国上海
自由贸易试验区张东路1158号丹桂
路1059号2幢305-22室
(72)发明人 辛越 管延信 苏俊 
(74)专利代理机构 济南信达专利事务所有限公
37100
专利代理师 李世喆 姜鹏
(51)Int.Cl .
G06F
9/54
(2006 .01)
G06F
12/06
(2006 .01)
(54)发明名称
基于共享内存的共享指针实现方法装置
设备及介质
(57)摘要
本发明提供了基于共享内存的共享指针实
现方法装置设备及介质方法包括构建构造
函数其中所述构造函数对应至少一种构造方
式的处理逻辑构建赋值函数其中所述赋值函
数对应至少一种赋值方式的处理逻辑构建原子
交换函数得到所述共享指针由于C++标准库中
提供了不支持跨进程的共享指针但是在跨进程
的系统中使用标准库的共享指针做跨进程操作
可能会由于虚函数不支持跨进程访问导致系
统宕机由此本发明的方案在共享内存的基础
上进行了支持跨进程操作的共享指针的设计及
实现
权利要求书2页 说明书5页 附图1页
CN 116775335 A
2023.09.19
CN 116775335 A
1 .基于共享内存的共享指针实现方法其特征在于包括
构建构造函数其中所述构造函数对应至少一种构造方式的处理逻辑
构建赋值函数其中所述赋值函数对应至少一种赋值方式的处理逻辑
构建原子交换函数得到所述共享指针
2.根据权利要求1所述的方法其特征在于所述构造方式包括默认构造对象指针
构造拷贝构造以及可变参数构造
所述默认构造的处理逻辑为将对象指针及引用计数指针初始化为nullptr将使用的
共享内存类型设置为none
所述对象指针构造的处理逻辑为根据传入的共享内存类型在对应的共享内存池中申
请引用计数指针同时将引用计数置为1
所述拷贝构造的处理逻辑为将当前shared_ptr的对象指针引用计数指针共享内存
类型赋值为入参对应属性同时将引用计数加1
所述可变参数构造的处理逻辑为识别传入的共享内存类型调用模板参数的可变参数
构造方法在对应的共享内存池中分别构造对象指针以及引用计数指针
3 .根据权利要求2所述的方法其特征在于所述构造方式进一步包括将shared_ptr
与nullptr进行运算符比较的构造方式
相应的该构造方式的处理逻辑与所述默认构造的处理逻辑相同
4 .根据权利要求1所述的方法其特征在于所述构造函数进一步包括指向同类型
const指针的拷贝构造函数提供从shared_ptr<const T>至shared_ptr<T>的类型转换
5 .根据权利要求1所述的方法其特征在于所述赋值方式包括同类型赋值
所述同类型赋值的操作逻辑为释放左值释放操作首先创建多线程内存屏障然后对
左值的引用计数减1同时判断减1前的old_ref_count是否为1若为1则显式调用删除对象
指针以及引用计数指针并将左值的对象指针引用计数指针成员变量置为nullptr然后
将右值的对象指针引用计数指针共享内存类型赋值给左值若右值的引用计数指数不为
空的话则将引用计数加1
6 .根据权利要求5所述的方法其特征在于所述赋值方式进一步包括同类型const
指针的赋值操作以及同类型引用的赋值操作
所述同类型const指针的赋值操作的操作逻辑为会对入参进行Assignable静态检查
之后执行上述所述同类型赋值的操作逻辑
所述同类型引用的赋值操作与所述同类型赋值的操作逻辑相同
7 .根据权利要求1所述的方法其特征在于所述原子交换函数的处理逻辑包括
通过swap额外定义tmp变量用于存放左值
在所述左值赋值后将tmp存放的变量赋值给右值从而实现两个shared_ptr的原子交
换。
8.基于共享内存的共享指针实现装置其特征在于包括
第一构建单元用于构建构造函数其中所述构造函数对应至少一种构造方式的处理
逻辑
第二构建单元用于构建赋值函数其中所述赋值函数对应至少一种赋值方式的处理
逻辑
权 利 要 求 书
1/2
2
CN 116775335 A
2
第三构建单元用于构建原子交换函数得到所述共享指针
9.电子设备其特征在于包括至少一个存储器和至少一个处理器
所述至少一个存储器用于存储机器可读程序
所述至少一个处理器用于调用所述机器可读程序执行权利要求1至7中任一所述的
方法
10.计算机可读介质其特征在于所述计算机可读介质上存储有计算机指令所述计
算机指令在被处理器执行时使所述处理器执行权利要求1至7中任一所述的方法
权 利 要 求 书
2/2
3
CN 116775335 A
3
of 9
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。