[发明专利]基于进程间共享内存方式生成唯一ID的方法及系统在审
申请号: | 201611141779.4 | 申请日: | 2016-12-12 |
公开(公告)号: | CN108614740A | 公开(公告)日: | 2018-10-02 |
发明(设计)人: | 韩小军;王瑞杰;马齐 | 申请(专利权)人: | 上海美桔网络科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京酷爱智慧知识产权代理有限公司 11514 | 代理人: | 安娜 |
地址: | 201100 上海市闵行区闵*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 共享内存 内存空间 存储内容 判定结果 信号锁 进程间通信方式 标识信号 进程 重复 并发 锁定 释放 创建 | ||
1.基于进程间共享内存方式生成唯一ID的方法,其特征在于,包括:
步骤S1,通过进程间通信方式创建一个秘匙;
步骤S2,获得一个信号ID,通过所述秘匙标识所述信号ID;
步骤S3,将所述信号ID进行锁定,得到信号锁;
步骤S4,获得共享内存中的一块内存空间;
步骤S5,判断所述内存空间中是否存在内容,得到判定结果,所述判定结果包括存在内容和不存在内容两种情况,所述内容包括时间戳和自增序列;
步骤S6,根据所述判定结果,对所述自增序列进行赋值,生成所述内存空间中的新的存储内容;
步骤S7,将所述信号锁释放,并结合所述内存空间中的新的存储内容,生成一个唯一的信号ID。
2.根据权利要求1所述的基于进程间共享内存方式生成唯一ID的方法,其特征在于,
所述步骤S4具体为:
判断所述共享空间中是否存在内存空间,得到判定结果;
根据所述判定结果,进行处理,得到所述共享空间中的一块内存空间:
当所述共享空间中存在内存空间,不作处理,得到所述共享空间中的一块内存空间;
当所述共享空间中不存在内存空间,开辟出一块内存空间,得到所述共享空间中的一块内存空间。
3.根据权利要求1所述的基于进程间共享内存方式生成唯一ID的方法,其特征在于,
所述步骤S6,具体为:
当所述内存空间中存在内容,将所述存在的内容中时间戳对应的时间与当前时间进行比较,对所述自增序列进行赋值,生成所述内存空间中的新的存储内容;
当所述内存空间中不存在内容,将自增序列设置成1,存储到所述内存空间中,得到所述内存空间中的新的存储内容。
4.根据权利要求3所述的基于进程间共享内存方式生成唯一ID的方法,其特征在于,
将所述存在的内容中时间戳对应的时间与当前时间进行比较,对所述自增序列进行赋值,具体为:
当所述存在的内容中时间戳对应的时间不小于所述当前时间1秒,将自增序列重置为1;
当所述存在的内容中时间戳对应的时间小于所述当前时间1秒,将自增序列累加,直到覆盖所述存在的内容。
5.根据权利要求1所述的基于进程间共享内存方式生成唯一ID的方法,其特征在于,
所述唯一的信号ID由服务器编号、时间戳和自增序列组成,为16位的数字。
6.基于进程间共享内存方式生成唯一ID的系统,其特征在于,包括:
秘匙创建模块,用于通过进程间通信方式创建一个秘匙;
信号ID获取模块,用于获得一个信号ID,通过所述秘匙标识所述信号ID;
信号ID锁定模块,用于将所述信号ID进行锁定,得到信号锁;
内存空间获取模块,用于获得共享内存中的一块内存空间;
内容判断模块,用于判断所述内存空间中是否存在内容,得到判定结果,所述判定结果包括存在内容和不存在内容两种情况,所述内容包括时间戳和自增序列;
内容存储模块,用于根据所述判定结果,对所述自增序列进行赋值,生成所述内存空间中的新的存储内容;
唯一信号ID生成模块,用于将所述信号锁释放,并结合所述内存空间中的新的存储内容,生成一个唯一的信号ID。
7.根据权利要求6所述的基于进程间共享内存方式生成唯一ID的系统,其特征在于,
所述内存空间获取模块,具体用于:
判断所述共享空间中是否存在内存空间,得到判定结果;
根据所述判定结果,进行处理,得到所述共享空间中的一块内存空间:
当所述共享空间中存在内存空间,不作处理,得到所述共享空间中的一块内存空间;
当所述共享空间中不存在内存空间,开辟出一块内存空间,得到所述共享空间中的一块内存空间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海美桔网络科技有限公司,未经上海美桔网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611141779.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:资源回收方法、装置及服务器
- 下一篇:一种计算机软件推送方法