[发明专利]一种并行处理的大型族谱世系图的生成方法及装置有效
申请号: | 201910339580.X | 申请日: | 2019-04-25 |
公开(公告)号: | CN110110270B | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 彭智勇;江欢;何子龙;彭煜玮;李蓉蓉 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F16/958 | 分类号: | G06F16/958 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 罗飞 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并行 处理 大型 族谱 世系 生成 方法 装置 | ||
1.一种并行处理的大型族谱世系图的生成方法,其特征在于,包括:
步骤S1:从数据库中将世系人物表中的人物读入内存中,并存储于内存的数据结构中,形成sxt数据表,其中,sxt数据表中存储有人物以及对应的世系代数;
步骤S2:根据存储的人物以及对应的世系代数,创建多个线程对人物之间的逻辑关系进行处理分析,并基于人物之间的逻辑关系、预设的生成页面的大小和前一代所占的空间,计算每个世代中包含的人物的位置信息;
步骤S3:根据计算出的人物的位置信息,将人物信息写入到相应的HTML模板的对应的位置中,形成HTML文件;
步骤S4:利用浏览器内核对HTML文件进行合并,对合并后的HTML文件进行样式排版,并生成与每个HTML文件对应的图片;
步骤S5:将生成的图片重复叠加,形成大型族谱世系图;
其中,步骤S2中,根据存储的人物以及对应的世系代数,创建多个线程对人物之间的逻辑关系进行处理分析,具体包括:
根据世系代数,对sxt数据表进行分块,其中,每个sxt数据表分块对应一个世代;
创建一个单独的线程对每个sxt数据表分块进行处理;
预设的生成页面的大小为生成页面包含的行数,人物之间的逻辑关系包括每个人物在所处世代中的排序,步骤S2中,基于人物之间的逻辑关系、预设的生成页面的大小和前一代所占的空间,计算每个世代中包含的人物的位置信息,具体包括:
将每个人物对应的页码数用Pid标识符表示,获得与每个人物对应的sxt数据表字段中的信息;
采用如下公式计算每个世代中包含的人物的位置信息:
其中,p表示当前页码,cy表示当前代的人物数据所占的页码,n表示在每一个世代中该人物的排序,m表示生成页面行数,by-1表示前一代最后一页的空白行数,page表示计算出的页面数;
将计算出的页面数page替换Pid标识符,获得人物在世系图中的位置信息。
2.如权利要求1所述的方法,其特征在于,为创建的每个线程设置标记位,标记位与线程中人物所处代数对应,步骤S5具体包括:
根据每个线程的标记位,对生成的图片进行叠加,形成大型族谱世系图。
3.如权利要求1所述的方法,其特征在于,在计算出页面数page后,所述方法还包括:
采用预设调度算法对待处理的数据进行处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910339580.X/1.html,转载请声明来源钻瓜专利网。