一种基于策略模式的信号发生器多线程管理方法

文档序号:9727130
一种基于策略模式的信号发生器多线程管理方法
【技术领域】
[0001]本发明涉及计算机软件应用领域,特别涉及一种基于策略模式的信号发生器多线程管理方法。
【背景技术】
[0002]随着计算机技术的发展,信号发生器功能越来越多,功能间关系复杂度越来越高,用户体验流畅性要求越来越高,仪器控制软件中线程的使用数量越来越多。多线程软件研发与维护时,线程的使用、管理与调试成为一个极其重要的问题,直接关系到信号发生器工作状态的稳定性、功能的正确性和用户交互体验的流畅性,以及软件维护时相关问题的定位效率和功能的可扩展性。
[0003]目前,信号发生器中线程的使用方式和线程间同步与互斥关系维护方式,如图1和图2所示,在现有的线程使用与维护机制中,一个线程对应一套全局资源,具有如下缺点:
[0004]缺点一:线程相关的全局资源多而分散,且没有统一的管理,软件可复用性差,增大了软件维护的难度;
[0005]缺点二:线程使用的接口不统一、分支多、耦合大,造成线程使用一致性较差和线程使用比较混乱,增加了软件开发人员出错的概率;
[0006]缺点三:线程同步与互斥关系对外泄露、不安全、不可靠,影响功能的可拓展性和正确性;
[0007]缺点四:线程调试功能匮乏,线程生命周期不能监控,造成线程相关问题定位难度大,增加了研发时间和维护成本。
[0008]为了提高线程使用的一致性,增强功能的可扩展性和线程间同步与互斥关系的安全性和可靠性,以及支持线程全生命周期监控,需要层次化设计统一的线程使用接口,动态配置与隐式建立线程间的同步与互斥关系以及提供丰富的线程调试信息。

【发明内容】

[0009]为解决现有技术的不足,提高软件研发的开发效率,降低开发成本,本发明提出了一种基于策略模式的信号发生器多线程管理方法,提高线程使用的一致性,增强功能的可扩展性和线程间同步与互斥关系的安全性和可靠性,以及丰富的线程调试信息支持线程全生命周期监控。
[0010]本发明的技术方案是这样实现的:
[0011]—种基于策略模式的信号发生器多线程管理方法,将线程管理模块分为信号源线程基类、功能线程派生类和线程管理类;
[0012]信号源线程基类负责定义和维护线程的基本信息,搭建线程处理框架;
[0013]功能线程派生类继承自信号源线程基类,负责具体实现某一特定功能,一个特定功能对应一个功能线程派生类;
[0014]线程管理类负责定义和维护功能线程派生类的对象,分配线程索引号,并通过全局唯一的全局线程管理类对象为线程管理模块外部使用者提供相应的线程管理接口。
[0015]可选地,所述功能线程负责实现某一特定功能,一个特定功能对应一个功能线程派生类,程序中有多个功能线程派生类。
[0016]可选地,所述信号源线程基类负责定义线程对象的基本属性和行为,搭建线程处理过程的执行框架,所有的功能线程都从该基类派生得到。
[0017]可选地,所述信号源线程基类搭建了三种类型的执行框架,分别是:单次执行的线程、外部触发多次执行的线程、循环执行的线程。
[0018]可选地,所述单次执行的线程创建后,线程处理过程执行一次后自动退出。
[0019]可选地,所述外部触发多次执行的线程创建后,线程处于等待外部触发状态,由外部触发执行;线程处理过程执行完一次后,再次处于等待外部触发状态,等待外部触发事件的再次触发并执行,直到外部取消或终止。
[0020]可选地,所述循环执行的线程创建后,线程处理过程一次次循环执行,直到外部取消或终止。
[0021]可选地,所述功能线程类派生自信号源线程基类,通过继承关系实现了功能线程类间属性和行为的一致。
[0022]可选地,所述功能线程类需要重写信号源线程基类的线程处理函数,完成指定的功能。
[0023]本发明的有益效果是:
[0024](1)通过继承的技术手段实现了线程执行框架的复用,将线程相关多而分散的全局资源转化为对象内部属性,全局资源减少为只有一个;
[0025](2)通过对外接口统一了线程的使用接口,实现了线程使用的一致性,将线程与使用者相隔离,降低了软件耦合;
[0026](3)通过线程局部存储技术、线程身份自动识别技术和线程同步与互斥关系动态配置与隐式建立技术,增强了同步与互斥关系的安全性和可靠性;
[0027](4)在线程执行框架中注入19条调试信息,能够系统性的监控并记录所有功能线程的全生命周期状态,帮助软件设计人员分析、定位线程相关问题(如死锁等)。
【附图说明】
[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029]图1为现有技术中线程使用方式的原理示意图;
[0030]图2为现有技术中线程互斥维护方式的原理示意图;
[0031 ]图3为本发明的线程管理模块架构图;
[0032]图4为本发明的执行框架流程图;
[0033]图5为本发明的线程管理模块的线程使用方式原理图。
【具体实施方式】
[0034]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]在现有的线程使用与维护机制中,线程使用的接口不统一、分支多、耦合大,造成线程使用一致性较差和线程使用比较混乱,增加了软件设计人员出错的概率和维护难度;线程同步与互斥关系对外泄露、不安全、不可靠,影响功能的可拓展性和正确性;线程调试功能匮乏,线程生命周期不能监控,造成线程相关问题定位难度大,增加了研发时间和成本。
[0036]本发明提供了一种新的基于策略模式的信号发生器多线程管理方法,主要构思在于基于策略模式和C++多态特性,采用面向对象和层次化设计思想,将线线程管理模块分为信号源线程基类、功能线程派生类和线程管理类三部分。
[0037]信号源线程基类负责定义和维护线程的基本信息,搭建线程处理框架;功能线程派生类继
再多了解一些
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1