一種基于策略模式的信號發生器多線程管理方法
【技術領域】
[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]信號源線程基類負責定義和維護線程的基本信息,搭建線程處理框架;功能線程派生類繼