一種基于策略模式的信號(hào)發(fā)生器多線程管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)軟件應(yīng)用領(lǐng)域,特別涉及一種基于策略模式的信號(hào)發(fā)生器多線程管理方法。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的發(fā)展,信號(hào)發(fā)生器功能越來越多,功能間關(guān)系復(fù)雜度越來越高,用戶體驗(yàn)流暢性要求越來越高,儀器控制軟件中線程的使用數(shù)量越來越多。多線程軟件研發(fā)與維護(hù)時(shí),線程的使用、管理與調(diào)試成為一個(gè)極其重要的問題,直接關(guān)系到信號(hào)發(fā)生器工作狀態(tài)的穩(wěn)定性、功能的正確性和用戶交互體驗(yàn)的流暢性,以及軟件維護(hù)時(shí)相關(guān)問題的定位效率和功能的可擴(kuò)展性。
[0003]目前,信號(hào)發(fā)生器中線程的使用方式和線程間同步與互斥關(guān)系維護(hù)方式,如圖1和圖2所示,在現(xiàn)有的線程使用與維護(hù)機(jī)制中,一個(gè)線程對(duì)應(yīng)一套全局資源,具有如下缺點(diǎn):
[0004]缺點(diǎn)一:線程相關(guān)的全局資源多而分散,且沒有統(tǒng)一的管理,軟件可復(fù)用性差,增大了軟件維護(hù)的難度;
[0005]缺點(diǎn)二:線程使用的接口不統(tǒng)一、分支多、耦合大,造成線程使用一致性較差和線程使用比較混亂,增加了軟件開發(fā)人員出錯(cuò)的概率;
[0006]缺點(diǎn)三:線程同步與互斥關(guān)系對(duì)外泄露、不安全、不可靠,影響功能的可拓展性和正確性;
[0007]缺點(diǎn)四:線程調(diào)試功能匱乏,線程生命周期不能監(jiān)控,造成線程相關(guān)問題定位難度大,增加了研發(fā)時(shí)間和維護(hù)成本。
[0008]為了提高線程使用的一致性,增強(qiáng)功能的可擴(kuò)展性和線程間同步與互斥關(guān)系的安全性和可靠性,以及支持線程全生命周期監(jiān)控,需要層次化設(shè)計(jì)統(tǒng)一的線程使用接口,動(dòng)態(tài)配置與隱式建立線程間的同步與互斥關(guān)系以及提供豐富的線程調(diào)試信息。
【發(fā)明內(nèi)容】
[0009]為解決現(xiàn)有技術(shù)的不足,提高軟件研發(fā)的開發(fā)效率,降低開發(fā)成本,本發(fā)明提出了一種基于策略模式的信號(hào)發(fā)生器多線程管理方法,提高線程使用的一致性,增強(qiáng)功能的可擴(kuò)展性和線程間同步與互斥關(guān)系的安全性和可靠性,以及豐富的線程調(diào)試信息支持線程全生命周期監(jiān)控。
[0010]本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0011]—種基于策略模式的信號(hào)發(fā)生器多線程管理方法,將線程管理模塊分為信號(hào)源線程基類、功能線程派生類和線程管理類;
[0012]信號(hào)源線程基類負(fù)責(zé)定義和維護(hù)線程的基本信息,搭建線程處理框架;
[0013]功能線程派生類繼承自信號(hào)源線程基類,負(fù)責(zé)具體實(shí)現(xiàn)某一特定功能,一個(gè)特定功能對(duì)應(yīng)一個(gè)功能線程派生類;
[0014]線程管理類負(fù)責(zé)定義和維護(hù)功能線程派生類的對(duì)象,分配線程索引號(hào),并通過全局唯一的全局線程管理類對(duì)象為線程管理模塊外部使用者提供相應(yīng)的線程管理接口。
[0015]可選地,所述功能線程負(fù)責(zé)實(shí)現(xiàn)某一特定功能,一個(gè)特定功能對(duì)應(yīng)一個(gè)功能線程派生類,程序中有多個(gè)功能線程派生類。
[0016]可選地,所述信號(hào)源線程基類負(fù)責(zé)定義線程對(duì)象的基本屬性和行為,搭建線程處理過程的執(zhí)行框架,所有的功能線程都從該基類派生得到。
[0017]可選地,所述信號(hào)源線程基類搭建了三種類型的執(zhí)行框架,分別是:單次執(zhí)行的線程、外部觸發(fā)多次執(zhí)行的線程、循環(huán)執(zhí)行的線程。
[0018]可選地,所述單次執(zhí)行的線程創(chuàng)建后,線程處理過程執(zhí)行一次后自動(dòng)退出。
[0019]可選地,所述外部觸發(fā)多次執(zhí)行的線程創(chuàng)建后,線程處于等待外部觸發(fā)狀態(tài),由外部觸發(fā)執(zhí)行;線程處理過程執(zhí)行完一次后,再次處于等待外部觸發(fā)狀態(tài),等待外部觸發(fā)事件的再次觸發(fā)并執(zhí)行,直到外部取消或終止。
[0020]可選地,所述循環(huán)執(zhí)行的線程創(chuàng)建后,線程處理過程一次次循環(huán)執(zhí)行,直到外部取消或終止。
[0021]可選地,所述功能線程類派生自信號(hào)源線程基類,通過繼承關(guān)系實(shí)現(xiàn)了功能線程類間屬性和行為的一致。
[0022]可選地,所述功能線程類需要重寫信號(hào)源線程基類的線程處理函數(shù),完成指定的功能。
[0023]本發(fā)明的有益效果是:
[0024](1)通過繼承的技術(shù)手段實(shí)現(xiàn)了線程執(zhí)行框架的復(fù)用,將線程相關(guān)多而分散的全局資源轉(zhuǎn)化為對(duì)象內(nèi)部屬性,全局資源減少為只有一個(gè);
[0025](2)通過對(duì)外接口統(tǒng)一了線程的使用接口,實(shí)現(xiàn)了線程使用的一致性,將線程與使用者相隔離,降低了軟件耦合;
[0026](3)通過線程局部存儲(chǔ)技術(shù)、線程身份自動(dòng)識(shí)別技術(shù)和線程同步與互斥關(guān)系動(dòng)態(tài)配置與隱式建立技術(shù),增強(qiáng)了同步與互斥關(guān)系的安全性和可靠性;
[0027](4)在線程執(zhí)行框架中注入19條調(diào)試信息,能夠系統(tǒng)性的監(jiān)控并記錄所有功能線程的全生命周期狀態(tài),幫助軟件設(shè)計(jì)人員分析、定位線程相關(guān)問題(如死鎖等)。
【附圖說明】
[0028]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0029]圖1為現(xiàn)有技術(shù)中線程使用方式的原理示意圖;
[0030]圖2為現(xiàn)有技術(shù)中線程互斥維護(hù)方式的原理示意圖;
[0031 ]圖3為本發(fā)明的線程管理模塊架構(gòu)圖;
[0032]圖4為本發(fā)明的執(zhí)行框架流程圖;
[0033]圖5為本發(fā)明的線程管理模塊的線程使用方式原理圖。
【具體實(shí)施方式】
[0034]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0035]在現(xiàn)有的線程使用與維護(hù)機(jī)制中,線程使用的接口不統(tǒng)一、分支多、耦合大,造成線程使用一致性較差和線程使用比較混亂,增加了軟件設(shè)計(jì)人員出錯(cuò)的概率和維護(hù)難度;線程同步與互斥關(guān)系對(duì)外泄露、不安全、不可靠,影響功能的可拓展性和正確性;線程調(diào)試功能匱乏,線程生命周期不能監(jiān)控,造成線程相關(guān)問題定位難度大,增加了研發(fā)時(shí)間和成本。
[0036]本發(fā)明提供了一種新的基于策略模式的信號(hào)發(fā)生器多線程管理方法,主要構(gòu)思在于基于策略模式和C++多態(tài)特性,采用面向?qū)ο蠛蛯哟位O(shè)計(jì)思想,將線線程管理模塊分為信號(hào)源線程基類、功能線程派生類和線程管理類三部分。
[0037]信號(hào)源線程基類負(fù)責(zé)定義和維護(hù)線程的基本信息,搭建線程處理框架;功能線程派生類繼