[发明专利]使用并发域的多线程化有效

专利信息
申请号: 200680014618.7 申请日: 2006-04-20
公开(公告)号: CN101248405A 公开(公告)日: 2008-08-20
发明(设计)人: A·F·阿玛德;B·什亚姆桑达;B·M·奥兰尼科;C·A·西泽伯斯基;S·克莱安 申请(专利权)人: 微软公司
主分类号: G06F3/00 分类号: G06F3/00;G06F13/00;G06F9/44;G06F15/173;G06F9/46;G06F15/177;G06F9/455
代理公司: 上海专利商标事务所有限公司 代理人: 陈斌
地址: 美国华*** 国省代码: 美国;US
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 使用 并发 多线程
【说明书】:

背景技术

随着计算机时代的到来,计算机和软件用户越来越习惯用户友好软件应用程序帮助他们编写、计算、组织、准备演示文稿、收发电子邮件、制作音乐等。例如,现代电子文字处理应用程序允许用户准备各种有用文档。现代电子数据表应用程序允许用户输入、操控和组织数据。现代电子幻灯片演示应用程序允许用户创建包括文本、图片、数据或其它有用对象的各种幻灯片演示文稿。

许多这些应用程序根据组件框架操作,在组件框架中许多应用程序组件连续运行和/或并发运行来执行给定总体应用方法的各个方法。通常,并发组件方法需要各种方法的多线程化。即,支持并发操作的应用程序使用多个方法线程。对这种应用程序的基本要求是其同步多个线程以使得在线程之间共享的任何数据相一致的能力。软件中的难点是重入(reentrancy)。通常由同步方法引入的问题是不确定性重入。通常,重入在线程作出嵌套调用并因此在完成第一次调用之前第二次进入同一对象时发生。例如,如果线程正在执行对第一对象的第一任务的调用,且作为该执行的一部分,调用第二对象的任务,则该线程在完成对第一对象的调用并从中返回之前进入第二对象。如果第二对象的任务执行的一部分包括调用第一对象的第二任务,则该线程在完成对第一对象的原始调用并从中返回之前重入第一对象。

应用组件的同步和应用程序方法的多线程化是复杂问题。例如,很难协调各线程的执行,尤其在两个线程中的指令需要使用同一数据或资源时。第一线程上的指令可能改动第二线程上的指令需要的数据。如果该数据在第二线程上的指令执行其之前被改动,就会在程序执行中导致错误。对于需要组件同步和多线程化的常规应用程序而言,已经使用了各种现有的线程化模型,包括Java-样式同步方法和语句、通用语言运行时(CLR)、同步上下文、套间线程化和租用线程化。使用这种模型需要在应用程序编程中包括复杂逻辑来适当处理多个方法线程。通过常规应用程序使用这些模型,必须将并发设计到应用程序的特定部分中并且必须就针对死锁和竞争条件的正确性对其进行测试。

这些现有的模型与其中应用程序是由多个组件组成的动态组合应用程序框架就算能在一起工作,也无法很好地配合工作,其中上述多个组件是基于由这些组件或该应用程序的其它关联组件接收的数据而被动态生成或再配置的。这很有问题,因为这种现有方法将多线程系统强行划分到该应用程序的多个区域中。对于这种动态生成和再配置的应用程序而言,有必要将应用程序组件编写成不具有与现有线程化模型相关联的复杂线程处理逻辑。

发明正是针对这些和其它考虑而作出的。

发明内容

发明内容以简化形式引入在以下详细描述中进一步描述的概念选择。发明内容不旨在标识所声明主题的关键特征和本质特征,也不旨在用于帮助确定所声明主题的范围。

本发明的实施方式通过把应用程序组件划分到被称为并发域的各分立域中来解决以上和其它问题。可将计算上昂贵、缓慢或运行时间长的方法部署到这些域中,从而保持关联应用程序与终端用户响应。根据本发明一个方面,给定并发域是运行时对象的一个分区,用于在该分区内提供同步和线程分隔以及提供与数据驱动的动态组合和再配置的应用程序中其它这些分区的并发。

根据本发明的诸方面,在运行时,给定的数据驱动动态组合和再配置应用程序包括一个和多个并发域。第一并发域是主并发域。主并发域包括应用程序的用户接口组件并在应用程序启动期间管理用户接口创建。该应用程序中包含的附加并发域是辅并发域。辅并发域由作为其父并发域的另一并发域创建并操作。并发域可在给定应用程序中需要并发的任何时间使用,其中各个并发域执行主应用程序的任务并按需向另一并发域发布其结果。

根据本发明的特定方面,提供一种用于同步软件应用程序组件的操作的方法、系统和计算机产品。根据本方面,提供第一并发域,它包括可操作成执行该软件应用程序的至少一个单线程对象的单个内部处理线程。提供与第一并发域相关联的第一边界对象,并用于使其从第一并发域外的软件应用程序对象中接收被导向单线程对象的第一工作项目。第一边界对象还用于将该第一工作项目记入工作项目队列。提供包括在并发域内的第一线程调度器,并可用于使其从工作项目队列中检索已记入的第一工作项目以及将已记入的第一工作项目传递给单线程对象以供单线程对象处理。单线程对象用于处理已记入的第一工作项目并将结果经由第一边界对象返回给外部对象。

通过阅读以下详细描述和关联附图的概述,表征本发明的这些和其它特征将变得显而易见。应该理解,以上概述和以下详细描述都仅是示例性的,而非对要求权利的本发明的限制。

附图说明

图1示出其中可实现本发明的适当计算环境。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200680014618.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top