[发明专利]基于多线程的数据同步方法、装置、设备和存储介质在审
| 申请号: | 201910299113.9 | 申请日: | 2019-04-15 |
| 公开(公告)号: | CN110134500A | 公开(公告)日: | 2019-08-16 |
| 发明(设计)人: | 杨小彦 | 申请(专利权)人: | 平安普惠企业管理有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48 |
| 代理公司: | 北京市京大律师事务所 11321 | 代理人: | 刘挽澜 |
| 地址: | 518027 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 队列 哈希 线程 存储介质 数据同步 多线程 队列选择规则 数据处理技术 缓存 哈希算法 数据操作 不一致 入队 放入 预设 分类 创建 保证 | ||
1.一种基于多线程的数据同步方法,其特征在于,包括:
批量创建多个队列,对每个所述队列开启一条独立的线程,用以执行对应所述队列中的操作任务;
获取操作任务,所述操作任务中包含有数据名称,对所述数据名称通过哈希算法计算得到哈希值,将所述哈希值与预设的队列选择规则进行比较,得到与所述哈希值对应的指定队列名称,将所述操作任务放入所述指定队列名称对应的队列中;
启动多个线程,通过多个所述线程分别执行对应队列中的所述操作任务。
2.根据权利要求1所述的基于多线程的数据同步方法,其特征在于,所述批量创建多个队列,对每个所述队列开启一条独立的线程,用以执行对应所述队列中的操作任务,包括:
定义一个队列类,包括定义存放数据位置、头指针和尾指针;
批量创建队列,定义每个所述队列的队列名称和队列长度,初始化每个所述队列,且将每个所述队列的头指针和尾指针都指向空;
开启多个线程,对每个所述队列指定一条独立的线程,用以独立执行所述队列中的操作任务。
3.根据权利要求1所述的基于多线程的数据同步方法,其特征在于,所述对所述数据名称通过哈希算法计算得到哈希值,包括:
将所述数据名称转换成位字符串;
对所述位字符串进行补位,以使所述位字符串的长度在对512取模后余数为448;
对补位后的所述位字符串进行补长度,将补好长度的所述位字符串分成至少一个512位的数据块;
将多个所述数据块定义为M1,M2,M3……Mn,对第Mi个所述数据块计算消息摘要:
将Mi分成16个字W0,W1,W1……W15;
当t=16到79时,令Wt=S1(Wt-3 XOR Wt-8 XOR Wt-14 XOR Wt-16),其中,Sn(X)表示循环左移操作符,X为一个字,n为整数,0≤n≤32,t为循环次数;
令A=H0,B=H1,C=H2,D=H3,E=H4,其中H0到H4为5个32位寄存器,初始化为:H0=0x67452301,H1=0xEFCDAB89,H2=0x98BADCFE,H3=0x10325476,H4=0xC3D2E1F0;
当t=0到79时,执行如下循环:
TEMP=S5(A)+ft(B,C,D)+E+Wt+Kt;
E=D,D=C,C=S30(B),B=A,A=TEMP;
其中,TEMP为缓冲区;
当0≤t≤19时:Kt=0x5A827999,ft(B,C,D)=(B AND C)OR((NOT B)AND D);
当20≤t≤39时:Kt=0x6ED9EBA1,ft(B,C,D)=(B XOR C XOR D);
当40≤t≤59时:Kt=0x8F1BBCDC,ft(B,C,D)=(B AND C)OR(B AND D)OR(C AND D);
当60≤t≤79时:Kt=0xCA62C1D6,ft(B,C,D)=(B XOR C XOR D);
令H0=H0+A,H1=H1+B,H2=H2+C,H3=H3+D,H4=H4+E,依次对Mn个所述数据块计算消息摘要,得到顺序标识为H0、H1、H2、H3、H4的字符串,所述字符串即为计算得到的所述哈希值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安普惠企业管理有限公司,未经平安普惠企业管理有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910299113.9/1.html,转载请声明来源钻瓜专利网。





