发明名称 |
多个线程对文档的并发利用的方法和系统 |
摘要 |
一种计算系统并发地执行生成器线程和读取器线程。构造器线程通过修改文档的活动表示来修改文档。读取器线程使用文档的非活动表示来对文档执行操作。文档的活动表示和文档的非活动表示存储在计算系统的存储器中。文档的活动表示和文档的非活动表示不包括相同数据在存储器中的不同副本。当读取文档的非活动表示中的数据时,确保逻辑一致性,而不锁定文档的非活动表示中的任何数据。 |
申请公布号 |
CN102939581B |
申请公布日期 |
2017.03.29 |
申请号 |
CN201180025941.5 |
申请日期 |
2011.05.16 |
申请人 |
微软技术许可有限责任公司 |
发明人 |
C·W·派克 |
分类号 |
G06F9/44(2006.01)I;G06F9/06(2006.01)I |
主分类号 |
G06F9/44(2006.01)I |
代理机构 |
永新专利商标代理有限公司 72002 |
代理人 |
王英 |
主权项 |
一种用于对文档执行操作的方法,其中,所述方法在包括一个或多个处理单元和存储器的计算系统中实施,所述方法包括:由所述计算系统执行通过修改所述文档的活动表示来修改所述文档的构造器线程,所述文档的所述活动表示存储在所述存储器中,其中,所述文档在内部被表示为文档树,所述文档树是文档元素的层次结构,其中,所述文档的活动表示包括索引树的活动版本,片段描述符表的活动版本以及真实元素阵列,所述真实元素阵列包含表示所述文档树中的每一个文档元素的元素,所述片段描述符表包括一组片段描述符,所述片段描述符中的每一个都标识所述真实元素阵列的一个片段,所述索引树包括索引节点的层次结构,所述索引节点中的每一个都指示所述片段描述符中的一个;以及由所述计算系统与所述构造器线程并发地执行读取器线程,所述读取器线程使用所述文档的非活动表示来对所述文档执行操作,其中,所述文档的非活动表示包括所述索引树的非活动版本,所述片段描述符表的非活动版本以及所述真实元素阵列,其中对供所述读取器线程使用的所述文档的非活动表示的访问是在所述构造器线程修改所述文档的活动表示时提供的,所述文档的非活动表示存储在所述存储器中,所述文档的活动表示和所述文档的非活动表示不包括相同数据在所述存储器中的不同副本,其中,当读取所述文档的非活动表示中的数据时,确保逻辑一致性,而不锁定所述文档的非活动表示中的任何数据。 |
地址 |
美国华盛顿州 |