[发明专利]多线程数据的保存方法及装置有效
申请号: | 201110262806.4 | 申请日: | 2011-09-06 |
公开(公告)号: | CN102446117A | 公开(公告)日: | 2012-05-09 |
发明(设计)人: | 郭瑞军 | 申请(专利权)人: | 北京数码大方科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明;余刚 |
地址: | 100080 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多线程 数据 保存 方法 装置 | ||
技术领域
本发明涉及通讯领域,具体而言,涉及一种多线程数据的保存方法及装置。
背景技术
随着应用软件的广泛应用,应用软件需要处理数据呈几何基数增长,例如三维CAD软件在制造业、装备业的广泛应用,软件所处理的数据及模型也在不断增大,由最初的几百个零件的减速器模型,到现在的几万个零部件的整车模型和大型机械总装,使得模型数据文件由原来的几百KB增加到几百MB。于是就对软件性能提出了新的要求。本文就在这种应用背景下,针对如何提高保存速度的技术方案进行了总体描述。
现有技术大多数软件都采用Windows推荐的流化处理,在文件保存时,每个零件对象都是顺序写入,即大多采用流式方式来保存文件,从头到尾写入文件数据,类似于有10个座位,10个人排成一队依次进入这10个座位,次序井然,但效率最低。
这种通过流式方式来保存数据的方式,由于文件必须从头到尾一次写完,从而在此过程中,后面数据必须等待前面数据,当数据量大时,后面数据需要等待很长时间,从而使得文件保存时间与文件大小或零件数成正比的增加,导致保存瓶颈受多个环节的影响,这是保存慢的一个重要原因。而且,这样保存的文件在读取时,当数据块有错误时,无法跳过当前错误块,导致后面数据也全部无法恢复。
目前,对于三维CAD软件处理大模型的需求越来越强烈,文件保存速度所突显出来的瓶颈效应越来越明显。一般软件使用者为防止数据丢失,都会随时保存,例如保存一个有100多个零件的减速器装配,目前主流配置的计算机只需要2秒以内,而保存一个有3万个零件的大型机械装配,同等配置的计算机需要5分钟以上。这是一般用户所无法忍受的。尽管用户可以通过提高硬件配置在一定程度上提高速度,但对于零件数上万的大装配,仅仅提升硬件配置的效果就不再那么明显了。因此,必须从软件算法上做出根本性改进,这样才能使软件在性能上有质的提升,从而满足企业的进一步的需要。另外,例如使用Word编辑文档时,就会随手按“Ctrl+S”来保存文件以防止自己修改丢失。而如果一个文件保存需要5分钟以左右时,这对软件无疑是一个致命的瓶颈。
目前针对相关技术的在数据增大的过程中由于采用流化存储而造成的数据等待、保存速度慢的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术的在数据增大的过程中由于采用流化存储而造成的数据等待、保存速度慢的问题,目前尚未提出有效的问题而提出本发明,为此,本发明的主要目的在于提供一种多线程数据的保存方法及装置,以解决上述问题。
为了实现上述目的,根据本发明的一个方面,提供了一种多线程数据的保存方法,该多线程数据的保存方法包括:读取处理器的核心数,处理器的核心数为处理器同步处理数据的最大线程数;在通过处理器的核心数确定处理器为多核的情况下,为文件中每种类型的数据流创建对应的保存线程;根据处理器的核心数启动运行一个或多个保存线程,以通过保存线程将对应的数据流保存至内存。
进一步地,根据处理器的核心数启动运行一个或多个保存线程,以通过保存线程将对应的数据流保存至内存包括:判断处理器的核心数是否大于等于保存线程的数目,其中,在核心数大于等于保存线程的数目的情况下,启动运行所有的保存线程以将对应的数据流保存至内存;在核心数小于保存线程的数目的情况下,启动运行与核心数相同数目的保存线程,并将未启动运行的保存线程保存至等待队列。
进一步地,在启动运行与核心数相同数目的保存线程,并将未启动运行的保存线程保存至等待队列之后,方法还包括:检测已经启动运行的保存线程是否运行结束,其中,在已经启动运行的保存线程运行结束的情况下,启动等待队列中的保存线程;在已经启动运行的保存线程未运行结束的情况下,继续运行正在运行的保存线程,直至运行结束。
进一步地,在启动运行与核心数相同数目的保存线程,并将未启动运行的保存线程保存至等待队列之后,方法还包括:在已经启动运行的保存线程运行结束时,系统释放已经运行结束的保存线程所占用的空间,并发送启动命令至等待队列;根据启动命令来启动运行等待队列中的保存线程。
为了实现上述目的,根据本发明的一个方面,提供了一种多线程数据的保存方法,该多线程数据的保存方法包括:读取处理器的核心数,处理器的核心数为处理器同步处理数据的最大线程数;在通过处理器的核心数确定处理器为多核的情况下,根据处理器的核心数为文件中一个或多个类型的数据流创建对应的保存线程;启动运行已经创建的所有保存线程,以通过保存线程将对应的数据流保存至内存,并检测处理器中正在运行的一个或多个保存线程的运行状态,根据运行结果处理文件中的其他保存线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京数码大方科技有限公司,未经北京数码大方科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110262806.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:轮胎制造装置及轮胎制造方法
- 下一篇:驯养动物圈舍中的智能气候控制
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置