[发明专利]多个线程对文档的并发利用的方法和系统有效
申请号: | 201180025941.5 | 申请日: | 2011-05-16 |
公开(公告)号: | CN102939581B | 公开(公告)日: | 2017-03-29 |
发明(设计)人: | C·W·派克 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/06 |
代理公司: | 永新专利商标代理有限公司72002 | 代理人: | 王英 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 文档 并发 利用 方法 系统 | ||
1.一种用于对文档执行操作的方法,所述方法包括:
提供包括一个或多个处理单元和存储器的计算系统;
由所述计算系统执行通过修改所述文档的活动表示来修改所述文档的构造器线程,所述文档的所述活动表示存储在所述存储器中;以及
由所述计算系统与所述构造器线程并发地执行读取器线程,所述读取器线程使用所述文档的非活动表示来对所述文档执行操作,所述文档的非活动表示存储在所述存储器中,所述文档的活动表示和所述文档的非活动表示不包括相同数据在所述存储器中的不同副本,其中,当读取所述文档的非活动表示中的数据时,确保逻辑一致性,而不锁定所述文档的非活动表示中的任何数据。
2.如权利要求1所述的方法,其特征在于:
由所述读取器线程执行的操作不修改所述文档;
每当所述构造器线程接收到修改所述文档的输入时,所述构造器线程执行创建所述文档的新表示的操作;并且
在所述构造器线程完成所述操作之后,所述文档的所述新表示可供所述读取器线程使用。
3.如权利要求1所述的方法,其特征在于:
所述文档是文字处理文档;并且
所述方法还包括:由所述计算系统执行文字处理应用,所述文字处理应用使用户能与所述文档进行交互,所述文字处理应用唤醒所述构造器线程和所述读取器线程。
4.如权利要求1所述的方法,其特征在于:
所述文档在内部被表示为文档树,所述文档树是文档元素的层次结构;
所述文档的活动表示包括真实元素阵列,所述真实元素阵列包含表示所述文档树中的每一个文档元素的元素;
所述文档的非活动表示包括所述真实元素阵列;并且
所述文档的活动表示和所述文档的非活动表示不包括所述真实元素阵列中的相同元素在所述存储器中的不同副本。
5.如权利要求4所述的方法,其特征在于,所述构造器线程在所述读取器线程并发地从所述文档的非活动表示中读取给定元素时从所述文档的活动表示中删除所述给定元素,所述给定元素表示所述文档树中的相同文档元素。
6.如权利要求4所述的方法,其特征在于:
所述文档的活动表示包括索引树的活动版本和片段描述符表的活动版本,所述片段描述符表包括一组片段描述符,所述片段描述符中的每一个都标识所述真实元素阵列中的一个片段,所述索引树包括索引节点的层次结构,所述索引节点中的每一个都指示所述片段描述符中的一个;
所述文档的非活动表示包括所述索引树的非活动版本和所述片段描述符表的非活动版本;
对于所述索引树中的每一个索引节点,与所述索引节点的左子树中的索引节点相关联的元素具有小于与所述索引节点相关联的元素的虚拟偏移量的虚拟偏移量,与所述索引节点的右子树中的索引节点相关联的元素具有大于与所述索引节点相关联的元素的虚拟偏移量的虚拟偏移量,所述虚拟偏移量是与虚拟元素阵列的开始处的偏移量,所述虚拟元素阵列是所述文档树的一维表示;并且
所述文档的活动表示和所述文档的非活动表示在所述存储器中没有所述片段描述符表中的相同片段描述符或所述索引树中的相同索引节点的不同副本。
7.如权利要求6所述的方法,其特征在于:
为了修改所述文档以包括附加文档元素,所述构造器线程执行元素插入操作,所述元素插入操作通过将一个或多个新元素插入到所述真实元素阵列中,将新片段描述符添加到所述片段描述符表,以及将一个或多个新索引节点添加到所述索引树,来生成所述文档的所述活动表示,所述一个或多个新元素表示所述附加文档元素;
在所述构造器线程完成所述元素插入操作之后,所述文档的所述活动表示变得可供所述读取器线程使用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180025941.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:双动力输出的农机变速箱
- 下一篇:产后止血系统