[发明专利]多线程应用系统的异常处理方法和异常处理装置无效
申请号: | 200810131157.2 | 申请日: | 2008-07-30 |
公开(公告)号: | CN101639803A | 公开(公告)日: | 2010-02-03 |
发明(设计)人: | 谭一兵;张玄;张蕾;三宅滋;三部良太;河合克己 | 申请(专利权)人: | 株式会社日立制作所 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F9/46 |
代理公司: | 永新专利商标代理有限公司 | 代理人: | 陈 萍 |
地址: | 日本*** | 国省代码: | 日本;JP |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多线程 应用 系统 异常 处理 方法 装置 | ||
技术领域
本发明涉及多线程应用系统中发生异常时处理异常的异常处理方法和异常处理装置。
背景技术
高效和可信赖的异常处理机制,对应用程序的开发,尤其对多线程环境的开发,变得越来越重要。一般来说,开发人员各自编写代码,对这些线程中发生的阻塞、死锁、数据竞争等异常独立地进行捕获和处理,所有的异常处理逻辑分散,不能统一。同时,当这些异常在各线程出现的时候,没有跟踪程序来监控,更没有深入的分析。所以,在基于传统编程方法的多线程应用系统开发中,一直缺乏有效的异常处理手段。进一步来说,如果所有的异常处理在各线程中单独编码实现,各种异常的处理方式将被固化。这样,异常处理程序很难做到有弹性地处理多线程应用系统运行时的各种异常。而这些异常却是各线程经常崩溃的一个重要因素。
为了解决多线程应用系统开发中异常处理的种种问题,在对比文献1(US 5628016号公报)中提出了一种单线程应用系统的异常处理方法,使用栈空间来存储异常注册记录,并根据这些记录来处理异常,即,通过存储每个方法的上下文信息来进行单线程系统中的异常处理。具体而言,允许系统通过较少地执行一些有效的机器指令,将错误(ERR)的数据信息推入到栈空间中,达到高效地注册相应异常处理器的目的。
虽然对比文件1所公开的技术能够提供一个捕获特定运行阶段异常的状态模型,但是需要将所有异常处理器的异常上下文信息都推入栈空间中,所以存在既花费时间、又浪费内存空间的问题。
再者,对比文件1所公开的技术,本质上需要使用已经在现代编程语言不被推荐使用的、在共享方面可能存在问题的“goto”语法。而基于这种语法,应用程序实际上被构建在一个很难被理解和接受的逻辑上,所以存在开发者很难理解这种异常处理策略的问题。
而且,由于对比文件1所公开的技术需要在运行的日志记录中,存储大量无序执行记录,存在不利于系统的追踪与改进的问题。
另外,对比文件1所公开的技术倾向于处理单线程中的异常,若将这种方法移植到多线程的环境中,则存在不能适应多线程中需要同步的各种上下文信息、运行时也需要引用更多的空间和时间的问题。
在多线程应用系统中,异常的捕获和预测对异常处理来说非常重要。然而,现有的异常处理需要在开发的代码中实现捕获和处理异常的任务。另外,异常处理策略在开发中通常被固定下来,所以不能在运行阶段提供灵活、有弹性的异常处理策略。
发明内容
本发明是鉴于上述问题而提出的,目的在于提供一种多线程应用系统中发生异常时处理异常的异常处理方法和异常处理装置,能够捕获和预测线程在运行阶段出现的异常,并按照异常处理策略进行异常处理。
本发明的多线程应用系统的异常处理方法,该多线程应用系统包括多个线程,其特征在于包括以下步骤:资源设定步骤,预先设定上述多线程应用系统所引用的资源的基本信息;线程设定步骤,预先设定各线程的路由、初始切入点及原子行为,其中,上述原子行为是各线程中独立且不可分割的行为;策略设定步骤,对各线程的路由及原子行为,根据各自所引用的资源的基本信息,确定异常处理策略,并将该异常处理策略嵌入到上述多线程应用系统中;执行步骤,执行嵌入了异常处理策略的多线程应用系统;及记录步骤,记录上述多线程应用系统的执行日志。
另外,本发明的多线程应用系统的异常处理装置,该多线程应用系统包括多个线程,其特征在于包括:资源设定模块,预先设定上述多线程应用系统所引用的资源的基本信息;线程设定模块,预先设定各线程的路由、初始切入点及原子行为,其中,上述原子行为是各线程中独立且不可分割的行为;策略设定模块,对各线程的路由及原子行为,根据各自所引用的资源的基本信息,确定异常处理策略,并将该异常处理策略嵌入到上述多线程应用系统中;执行引擎模块,执行嵌入了异常处理策略的多线程应用系统;及记录模块,记录上述多线程应用系统的执行日志。
本发明的效果如下:
根据本发明多线程应用的异常处理方法和异常处理装置,采用通用的方法,即,根据预定的异常处理策略的组合,捕获多线程应用系统中的异常,并提供特定异常的走向预测。另外,通过记录所有的异常处理,为运行阶段的异常处理提供持久的可跟踪性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于株式会社日立制作所,未经株式会社日立制作所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810131157.2/2.html,转载请声明来源钻瓜专利网。