多线程应用系统的异常处理方法和异常处理装置制造方法及图纸

技术编号:4195016 阅读:312 留言:0更新日期:2012-04-11 18:40
本发明专利技术的多线程应用系统的异常处理方法和异常处理装置,能够捕获线程在运行阶段出现的异常,并按照预定的异常处理策略进行异常处理。多线程应用系统的异常处理方法,该多线程应用系统包括多个线程,其特征在于包括以下步骤:资源设定步骤,预先设定多线程应用系统所引用的资源的基本信息;线程设定步骤,预先设定各线程的路由、初始切入点及原子行为,其中,原子行为是各线程中独立且不可分割的行为;策略设定步骤,对各线程的路由及原子行为,根据各自所引用的资源的基本信息,确定异常处理策略,并将该异常处理策略嵌入到多线程应用系统中;执行步骤,执行嵌入了异常处理策略的多线程应用系统;记录步骤,记录多线程应用系统的执行日志。

【技术实现步骤摘要】

本专利技术涉及多线程应用系统中发生异常时处理异常的异常处理方法和异常处理装置。
技术介绍
高效和可信赖的异常处理机制,对应用程序的开发,尤其对多线程环境的开发,变得越来越重要。 一般来说,开发人员各自编写代码,对这些线程中发生的阻塞、死锁、数据竞争等异常独立地进行捕获和处理,所有的异常处理逻辑分散,不能统一。同时,当这些异常在各线程出现的时候,没有跟踪程序来监控,更没有深入的分析。所以,在基于传统编程方法的多线程应用系统开发中, 一直缺乏有效的异常处理手段。进一步来说,如果所有的异常处理在各线程中单独编码实现,各种异常的处理方式将被固化。这样,异常处理程序很难做到有弹性地处理多线程应用系统运行时的各种异常。而这些异常却是各线程经常崩溃的一个重要因素。为了解决多线程应用系统开发中异常处理的种种问题,在对比文献1 (US 5628016号公报)中提出了一种单线程应用系统的异常处理方法,使用栈空间来存储异常注册记录,并根据这些记录来处理异常,即,通过存储每个方法的上下文信息来进行单线程系统中的异常处理。具体而言,允许系统通过较少地执行一些有效的机器指令,将错误(ERR)的数据信息推入到栈空间中,达到高效地注册相应异常处理器的目的。虽然对比文件1所公开的技术能够提供一个捕获特定运行阶段异常的状态模型,但是需要将所有异常处理器的异常上下文信息都推入栈空间中,所以存在既花费时间、又浪费内存空间的问题。再者,对比文件l所公开的技术,本质上需要使用已经在现代编程语言不被推荐使用的、在共享方面可能存在问题的goto语法。而基于这种语法,应用程序实际上被构建在一个很难被理解和接受的逻辑上,所以存在开发者很难理解这种异常处理策略的问题。而且,由于对比文件1所公开的技术需要在运行的日志记录中,存储大量无序执行记录,存在不利于系统的追踪与改进的问题。另外,对比文件1所公开的技术倾向于处理单线程中的异常,若将这种方法移植到多线程的环境中,则存在不能适应多线程中需要同步的各种上下文信息、运行时也需要引用更多的空间和时间的问题。在多线程应用系统中,异常的捕获和预测对异常处理来说非常重要。然而,现有的异常处理需要在开发的代码中实现捕获和处理异常的任务。另外,异常处理策略在开发中通常被固定下来,所以不能在运行阶段提供灵活、有弹性的异常处理策略。
技术实现思路
本专利技术是鉴于上述问题而提出的,目的在于提供一种多线程应用系统中发生异常时处理异常的异常处理方法和异常处理装置,能够捕获和预测线程在运行阶段出现的异常,并按照异常处理策略进行异常处理。本专利技术的多线程应用系统的异常处理方法,该多线程应用系统包括多个线程,其特征在于包括以下步骤资源设定步骤,预先设定上述多线程应用系统所引用的资源的基本信息;线程设定步骤,预先设定各线程的路由、初始切入点及原子行为,其中,上述原子行为是各线程中独立且不可分割的行为;策略设定步骤,对各线程的路由及原子行为,根据各自所引用的资源的基本信息,确定异常处理策略,并将该异常处理策略嵌入到上述多线程应用系统中;执行步骤,执行嵌入了异常处理策略的多线程应用系统;及记录步骤,记录上述多线程应用系统的执行日志。另外,本专利技术的多线程应用系统的异常处理装置,该多线程应用系统包括多个线程,其特征在于包括资源设定模块,预先设定上述多线程应用系统所引用的资源的基本信息;线程设定模块,预先设定各线程的路由、初始切入点及原子行为,其中,上述原子行为是各线程中独立且不可分割的行为;策略设定模块,对各线程的路由及原子行为,根据各自所引用的资源的基本信息,确定异常处理策略,并将该异常处理策略嵌入到上述多线程应用系统中;执行引擎模块,执行嵌入了异常处理策略的多线程应用6系统;及记录模块,记录上述多线程应用系统的执行日志。 本专利技术的效果如下根据本专利技术多线程应用的异常处理方法和异常处理装置,采用通用的 方法,即,根据预定的异常处理策略的组合,捕获多线程应用系统中的异 常,并提供特定异常的走向预测。另外,通过记录所有的异常处理,为运 行阶段的异常处理提供持久的可跟踪性。根据本专利技术多线程应用的异常处理方法和异常处理装置,线程在运行 阶段中的所有异常都能够被完全捕获和管理,而且,开发者可以基于完备 的执行日志来实现可调试、可跟踪、健壮的多线程系统。此外,对于已经 开发完毕的多线程应用系统来说,只需要增加资源基本信息设定以及异常 处理策略设定,就可以全面处理运行阶段可能出现的异常,能极大地改进 多线程应用系统中的异常处理覆盖面。附图说明图1是示意地示出本专利技术的多线程应用系统的异常处理装置的框图。 图2是示意地示出本专利技术的多线程应用系统的异常处理方法的流程图。 图3是示出典型的多线程应用系统所包含的多个线程的一个示例的图。 图4是表示多线程应用系统的各线程所引用的资源的一个示例的图。 图5是示出线程的路由、初始切入点和原子行为的例子的图。 图6是示出预先设定的异常处理策略的种类的例子的图。 图7是示出本专利技术的嵌入了异常处理策略的多线程应用系统的异常处 理实例的图。图8是示出具有合作性关系的两个线程的例子的图。 图9是示出具有竞争性关系的两个线程的例子的图。 图10是示出执行嵌入了异常处理策略的多线程应用系统的示例的图。 图11是示出具有多个异常处理策略时投票确定最终异常处理策略的投 票机制的图。图12是具有多个异常处理策略时多个行为投票确定最终异常处理策略 的例子。图13是具有多个异常处理策略时多个行为投票确定最终异常处理策略的另一个例子。图14是示出发生异常时各线程之间的警告动作的图。 具体实施例方式以下,参照附图说明本专利技术的多线程应用系统的异常处理装置和异常 处理方法的实施方式。图l是示意性地示出本专利技术的多线程应用系统的异常处理装置的框图。如图1所示,本专利技术的多线程应用系统的异常处理装置10包括资源设定 模块l,预先设定多线程应用系统所引用的资源的基本信息;线程设定模块 2,预先设定各线程的路由、初始切入点及原子行为,其中,原子行为是各 线程中独立且不可分割的行为;策略设定模块3,对各线程的路由及原子行 为,根据各自所引用的资源的基本信息,设定异常处理策略,并将该异常 处理策略嵌入到多线程应用系统中;执行引擎模块4,执行嵌入了异常处理 策略的多线程应用系统;记录模块5,记录多线程应用系统的执行日志。图2示意性地示出本专利技术的多线程应用系统的异常处理方法的流程。 如图2所示,在本专利技术的包括多个线程的多线程应用系统的异常处理方法 中,首先,预先设定多线程应用系统所引用的资源的基本信息(资源设定 步骤S101)。接着,预先设定各线程的路由、初始切入点及原子行为,其中, 原子行为是各线程中独立且不可分割的行为(线程设定步骤S102)。然后, 对各线程的路由及原子行为,根据各自所引用的资源的基本信息,设定异 常处理策略,并将该异常处理策略嵌入到多线程应用系统中(策略设定步 骤S103)。之后,执行嵌入了异常处理策略的多线程应用系统(执行步骤 S104)。最后,记录多线程应用系统的执行日志(记录步骤S105)。以下,参照图3、图4和表1,说明资源设定步骤SIOI,即,预先设定 多线程应用系统所引用的资源的基本信息。首先,参照图3说明多线程应用系统所包含的多个线程本文档来自技高网
...

【技术保护点】
一种多线程应用系统的异常处理方法,该多线程应用系统包括多个线程,其特征在于包括以下步骤: 资源设定步骤,预先设定上述多线程应用系统所引用的资源的基本信息; 线程设定步骤,预先设定各线程的路由、初始切入点及原子行为,其中,上述原子 行为是各线程中独立且不可分割的行为; 策略设定步骤,对各线程的路由及原子行为,根据各自所引用的资源的基本信息,确定异常处理策略,并将该异常处理策略嵌入到上述多线程应用系统中; 执行步骤,执行嵌入了异常处理策略的多线程应用系统;   记录步骤,记录上述多线程应用系统的执行日志。

【技术特征摘要】
1.一种多线程应用系统的异常处理方法,该多线程应用系统包括多个线程,其特征在于包括以下步骤资源设定步骤,预先设定上述多线程应用系统所引用的资源的基本信息;线程设定步骤,预先设定各线程的路由、初始切入点及原子行为,其中,上述原子行为是各线程中独立且不可分割的行为;策略设定步骤,对各线程的路由及原子行为,根据各自所引用的资源的基本信息,确定异常处理策略,并将该异常处理策略嵌入到上述多线程应用系统中;执行步骤,执行嵌入了异常处理策略的多线程应用系统;记录步骤,记录上述多线程应用系统的执行日志。2. 如权利要求l所述的多线程应用系统的异常处理方法,其中, 上述资源的基本信息包括资源类型和同步属性。3. 如权利要求1所述的多线程应用系统的异常处理方法,其中, 上述路由所在线程具有上下文信息及与该上下文信息对应的异常处理策略。4. 如权利要求1所述的多线程应用系统的异常处理方法,其中,在执 行步骤中,正在执行的线程若发生异常,则向其竞争性的其它线程及/或合 作性的其它线程发出警告信息。5. 如权利要求4所述的多线程应用系统的异常处理方法,其中, 正在执行的线程若接收到来自其它线程的警告信息,则按照上述上下文信息对应的异常处理策略进行异常处理。6. 如权利要求5所述的多线程应用系统的异常处理方法,其中, 在线程发生异常时存在多个异常处理策略的情况下,按照预定规则通过投票来确定最终异常处理策略。7. 如权利要求6所述的多线程应用系统的异常处理方法,其中, 将上述多个异常处理策略中数量最多的异常处理策略确定为上述最终异常处理策略。8. 如权利要求6所述的多线程应用系统的异常处理方法,其中, 将引用资源最多的原子行为的异常处理策略确定为上述最终异常处理策略。9. 如权利要求1所述的多线程应用系统的异常处理方法,其中, 在记录步骤中,记录所有上下文信息及其相应的异常处理。10. —种多线程应用系统的异常处理装置,该多线程...

【专利技术属性】
技术研发人员:谭一兵张玄张蕾三宅滋三部良太河合克己
申请(专利权)人:株式会社日立制作所
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1