《電子技術應用》
您所在的位置:首頁 > 測試測量 > 業界動態 > 基于LabVIEW的多線程編程技術比較研究

基于LabVIEW的多線程編程技術比較研究

2009-03-31
作者:張紅民1,2, 李曉峰2

  摘 要: 為了充分利用系統資源,提高數據采集系統的運行效率,對LabVIEW編程框架下的數據采集系統進行了模塊化分解。分別使用單線程技術,隊列與集合相結合、僅使用隊列兩種多線程技術實現了系統主要功能,并對結果進行了比較和分析。結果表明,與單線程相比,多線程編程技術能有效地縮短數據采集與分析時間,且僅使用隊列的多線程方案具有更高的執行效率。
  關鍵詞: LabVIEW;多線程;隊列;集合

?

  LabVIEW是NI公司推出的一種基于圖形化編程語言的虛擬儀器開發平臺,以其諸多的優點得到了廣泛的認可,是進行虛擬儀器開發的強大軟件工具。LabVIEW在編程中引入了數據流的概念,程序嚴格按照數據流的方向順序執行[1-2]。一個基本的數據采集系統框圖如圖1所示,主要包括數據采集、采集顯示(顯示1)、處理分析、分析顯示(顯示2)、結果存儲五個部分。如果采用單線程編程,則數據依次進入各個模塊,后面的模塊必須等前面的模塊執行完后才能開始執行。當用時較長的I/O操作模塊(如數據高速連續采集)在運行時,其他模塊等待時間較長,影響整個采集系統的實時性[3]。多線程技術是解決該問題的有效方法之一。本文根據LabVIEW的編程特點,對數據流進行分解,利用同步機制中的隊列與集合相結合及僅使用隊列兩種多線程編程技術對LabVIEW編程環境下的多線程編程技術進行了研究,并從執行效率上進行比較和結果分析。

?

?

1 多線程技術及其LabVIEW編程
  進程是應用程序的運行實例,而線程是進程內部的可獨立執行的單元,是操作系統對系統資源的基本調度單位。同屬于一個進程的所有線程都共享進程的虛擬地址空間,線程之間可以共享進程的全部數據和資源。
  多線程是指操作系統支持一個進程中執行多個線程的能力。采用多線程編程技術,整個軟件程序含有完成不同功能的多個線程,如數據采集、實時數據和曲線顯示、數據處理與分析線程和用戶界面線程等。這樣,多個線程同時執行,在一段時間內并行完成多個任務,既加快了系統的反應速度,又提高了執行效率[4-5]。在現代測控技術中,多線程編程技術常常是必須采用的技術。
1.1 多線程在LabVIEW中的實現
  LabVIEW圖形化編程語言與其他成熟的計算機編程語言相比有較大的差別,主要特點是它引入了數據流的概念,程序執行過程中數據的流向、程序執行的順序和方向都是可預見的[6]。然而,這種順序化執行方式對多線程編程是不利的。因為各個線程并行運行,同時還要共享進程數據,從左至右的數據流方式似乎是不太可能實現多個線程的并行運行的。為了解決這個問題,LabVIEW采用將沒有直接數據連接的程序塊單獨創建一個線程,將各個模塊放在循環結構中并行執行而實現多線程,它是LabVIEW中創建多線程的一般方法。但是,創建了多個線程并不能保證它們能正確有序地運行,而是需要在線程間傳遞和共享數據,以及線程之間進行同步與通信。
1.2 多線程間的通信
  LabVIEW中提供了局部變量與全局變量,可以用局部變量在兩個甚至多個線程間傳遞和共享數據。如對數據采集模塊的輸出設置一個寫局部變量,處理分析模塊設置一個讀局部變量,兩個模塊間沒有直接的數據連接,通過局部變量傳遞數據,數據采集和處理分析兩個線程并行運行。然而,這種數據傳遞方式是不安全的,若處理分析模塊運行所需的時間比數據采集模塊要短,可能導致處理分析模塊對局部變量多次重復讀取,從而引起錯誤的的數據分析結果,這顯然不是我們所期望的。
  在LabVIEW多線程程序設計的系統中,線程之間數據傳遞和共享、線程間的同步是實現多線程編程的關鍵。LabVIEW在Synchronization中提供通知(Notifier)、隊列(Queue)、旗語(Semaphore)、集合(Rendezvous)、事件(Occurrences)等函數,以解決多線程間的數據傳遞和同步問題。
2 LabVIEW中線程編程技術比較
  將數據采集系統分解成如圖1的數據采集、采集顯示(顯示1)、處理分析、分析顯示(顯示2)、結果存儲這五個模塊,假設數據采集所需時間為60ms,處理分析為70ms,采集顯示和分析顯示均為30ms,結果存儲為100ms,數據采集和結果存儲VI的優先級設置為高于正常,顯示VI設置成可重入,其他所有用戶子VI的執行系統和優先級都按默認設置。連續運行30次,每次采集正弦函數產生的150個點的數據,分別用單線程、多線程方案來統計程序運行的時間,然后對測試結果進行分析和比較,以此來驗證多線程編程技術的效果。
2.1 單線程實現
  單線程的實現就是程序按數據采集、采集顯示、處理分析、分析顯示、結果存儲的順序執行,數據流從左至右依次流進這幾個模塊,程序框圖如圖2所示。

2.2 隊列與集合實現
  可以肯定,采用單線程這種順序化的執行方式效率較低,因為各個模塊都要等待數據,不能并行執行。對系統進行分解,可以明顯看出,除了分成五個模塊外,已采集數據的采集顯示、處理分析可以并行執行。同樣,處理分析后的數據也可以同時進行分析顯示、結果存儲。這樣,系統就簡化成了三個部分和兩條主要的數據流,分別為數據采集到采集顯示、處理分析的數據流,處理分析后的數據到分析顯示、結果存儲的數據流。而且,這三部分之間傳遞的數據還是有序的,因此可以采用兩個隊列(Queue)來傳遞數據。而已采集數據的采集顯示、處理分析,處理分析后的分析顯示、結果存儲的并行執行使用集合(Rendezvous)來實現,具體的程序框圖如圖3所示。


  在數據采集模塊、處理分析模塊完成后讓輸出的數據分別進入各自的隊列(Enqueue Element),同時創建集合(Rendezvous),已采集數據的采集顯示、處理分析,處理分析后的數據的分析顯示、結果存儲分別從兩個隊列中取出各自的數據,只有當等待集合(Wait at Rendezvous)收到集合信號后同時執行。
2.3 隊列實現
  若全部采用隊列來實現五個模塊的并行運行和模塊間的數據傳遞、共享及模塊間的同步,這時會有四個數據隊列,分別為數據采集到采集顯示的隊列、采集顯示到處理分析的隊列、處理分析到分析顯示的隊列、分析顯示到結果存儲的隊列。除了結果存儲模塊外,各個模塊的輸出均進入下一個隊列,而除了數據采集模塊外,各個模塊的輸入均來自上一個隊列(Dequeue Element),程序框圖如圖4所示。

3 試驗結果與分析
  在Intel Pentium D CPU 3GHz,1GB內存(DDR2 533),Windows XP SP2,LabVIEW7.1環境下運行,單線程的運行時間是8 792ms,同時使用隊列和集合實現的多線程方案的運行時間是6 940ms,僅使用隊列實現的多線程方案的運行時間為4 978ms。同時使用隊列和集合的方案運行時間占單線程方案的78.9%,僅使用隊列的多線程方案運行時間占單線程方案的56.6%。毫無疑問,使用多線程編程技術的確能有效地減少程序的執行時間。但是,兩種方案實現的多線程效果有比較明顯的差異,同時使用隊列和集合的方案僅節約了20%左右的時間,而僅使用隊列的多線程方案節約了近50%的時間。
  分析和比較發現:隊列加集合的方案雖然更符合人們編程的思維,但并沒有達到理想的效果,原因在于采集顯示模塊所需時間和處理分析模塊相差較大,兩者并行運行的時間基本上取決于處理分析模塊所用的時間,只有在處理分析模塊運行完成后才發出集合信號,分析顯示模塊與結果存儲模塊才開始運行。同理,分析顯示模塊和結果存儲模塊相比也是如此,兩者并行運行的時間基本上取決于結果存儲模塊所用的時間。因此,處理分析與結果存儲這兩個最占用時間的模塊之間仍是串行運行的。相比而言,僅采用隊列實現的多線程方案,四個隊列的首尾是相連的,當一個數據進入隊列后,馬上就可以通過隊列傳遞給其他的模塊,因此五個模塊都是并行運行的,大大節約了整個系統執行時間。由此可見,單線程的執行時間基本上等于各個模塊的時間總和,僅采用隊列實現的多線程方案的執行時間基本上由執行時間最長的那個模塊決定。
  對于一個數據采集系統,根據其任務功能恰當地分解成幾個獨立的模塊,利用多線程編程技術,恰當地使用LabVIEW同步機制中提供的函數,尤其是隊列,可以有效地縮短系統整體的執行時間,提高數據采集系統的時效性。在LabVIEW虛擬儀器平臺下,多線程編程技術比單線程更能有效地縮短數據采集、分析和存儲的時間,而且,僅使用隊列的多線程編程方式具有更高的執行效率。

參考文獻
[1] 楊樂平,李海濤,趙勇,等.LabVIEW高級程序設計[M].北京:清華大學出版社,2003.
[2] ?高亞奎,支超有.多線程虛擬儀器測試軟件的開發[J].計算機測量與控制,2003,11(12):986-987.
[3] ?李成,丁天懷,傅志斌,等.可多線程測量的模擬鉆桿四分量力虛擬儀器[J].清華大學學報(自然科學版),2006,46(8):1414-1417.
[4] ?林康紅.基于LabVIEW的遠程虛擬儀器多線程技術[J].自動化儀表,2003,24(8):25-27.
[5] ?張靚,黃海于,張翠芳.基于Lab Windows/CVI多線程數據采集的研究與設計[J].中國儀器儀表,2005(8):72-76.
[6] ?蘇維嘉,李大琳.虛擬儀器設計中多線程技術的應用[J].工業控制計算機,2007(9):92-93.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩国产经典色站一区二区三区| 久久久国产精品一区二区中文| 亚洲欧美日韩综合国产aⅴ| 国产精品啊啊啊| 在线免费观看日本一区| 久久久久久一区| 欧美88av| 亚洲永久免费| 黄页网站一区| 亚洲性av在线| 激情小说亚洲一区| 国产一区二区三区四区hd| 欧美日韩亚洲系列| 亚洲尤物在线| 国产一区二区三区在线观看网站| 亚洲成人在线视频网站| 国产精品手机视频| 国产日韩欧美综合一区| 欧美日韩国产欧美日美国产精品| 午夜欧美不卡精品aaaaa| 久久亚洲精品一区| 老司机午夜精品| 午夜精品久久久久久99热| 国产亚洲成av人片在线观看桃| 在线成人黄色| 欧美日韩一二三区| 日韩一区二区福利| 久久久国产91| 中文高清一区| 国产区精品在线观看| 国产免费成人在线视频| 欧美r片在线| 日韩视频在线观看国产| 国产精品美女久久久| 亚洲美女免费精品视频在线观看| 久久国产视频网| 国产一区二区黄| 免费不卡视频| 亚洲激情偷拍| 国产精品一香蕉国产线看观看| 国产精品久久999| 国产亚洲精品bv在线观看| 国产午夜精品视频| 亚洲欧美日本日韩| 国产日韩欧美在线观看| 一区二区三区欧美亚洲| 亚洲精品影院| 久久久av毛片精品| 国产精品一区2区| 欧美三级视频在线观看| 欧美成人精品在线| 国产伦精品免费视频| 亚洲欧美国产日韩天堂区| 国产精品日韩在线一区| 欧美激情第4页| 中日韩美女免费视频网站在线观看| 国产精品成人观看视频国产奇米| 欧美日韩在线看| 免费国产自线拍一欧美视频| 亚洲美女毛片| 国产午夜精品久久久久久久| 亚洲欧洲精品一区二区精品久久久| 亚洲精品久久久久久一区二区| 亚洲欧美日本视频在线观看| 国产日韩欧美在线播放| 久久se精品一区二区| 国产日韩精品久久久| 欧美精品色一区二区三区| 国产精品久久777777毛茸茸| 亚洲福利视频三区| 欧美日本精品一区二区三区| 性久久久久久久久| 欧美日韩免费精品| 国产女人水真多18毛片18精品视频| 一区二区视频在线观看| 99视频有精品| 一区二区三区在线免费视频| 亚洲日本欧美在线| 久久国产精品久久久久久久久久| 久久香蕉国产线看观看av| 伊人天天综合| 亚洲国产精品黑人久久久| 欧美成人精品一区二区三区| 一区二区日韩精品| 日韩亚洲欧美一区二区三区| 久久精品123| 亚洲欧洲日本在线| 亚洲精品国产精品久久清纯直播| 亚洲国产成人午夜在线一区| 国产一区视频在线观看免费| **网站欧美大片在线观看| 在线国产欧美| 久久人人超碰| 久久久www成人免费无遮挡大片| 午夜久久美女| 国内精品视频在线播放| 中文精品一区二区三区| 欧美久久一区| 伊人天天综合| 国产欧美一区二区三区国产幕精品| 欧美成人午夜| 欧美日韩免费区域视频在线观看| 欧美偷拍另类| 亚洲视频视频在线| 欧美精品一区二| 樱桃成人精品视频在线播放| 国产乱肥老妇国产一区二| 国产综合久久久久久| 欧美视频在线观看一区二区| 国产美女精品人人做人人爽| 91久久中文| 午夜精彩国产免费不卡不顿大片| 国产一区二区三区电影在线观看| 在线看日韩欧美| 亚洲欧美日韩视频二区| 欧美日本在线视频| 亚洲国产中文字幕在线观看| 黄色日韩网站视频| 国产真实久久| 久久精品国产第一区二区三区| 欧美大片第1页| 亚洲欧美日韩国产中文| 久久久999精品| 欧美福利视频网站| 亚洲国产高清一区二区三区| 国产精品成人在线| 国产精品久久久久婷婷| 欧美日韩精品一区| 欧美视频免费看| 久久国产精品免费一区| 久久www成人_看片免费不卡| 激情婷婷欧美| 亚洲第一精品影视| 日韩视频不卡中文| 国产手机视频一区二区| 午夜一区二区三区在线观看| 欧美xx69| 在线观看福利一区| 久久精品亚洲一区| 久久国产主播| 国产精品夜色7777狼人| 欧美日韩午夜剧场| 久久裸体艺术| 91久久在线播放| 欧美日韩免费精品| 欧美三级第一页| 欧美午夜女人视频在线| 国产欧美日本在线| 欧美成人午夜激情| 老司机精品福利视频| 在线色欧美三级视频| 国产精品videossex久久发布| 亚洲欧美日韩国产另类专区| 欧美日韩国产一中文字不卡| 久久一二三国产| 一区二区黄色| 欧美国产日韩二区| 欧美午夜激情视频| 影音先锋日韩有码| 欧美肉体xxxx裸体137大胆| 久久久精品久久久久| 国产精品免费看片| 激情欧美一区二区三区在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美另类专区| 国产精品蜜臀在线观看| 一本色道久久88综合日韩精品| 欧美福利视频一区| 亚洲国产精品专区久久| 99国产精品久久久久久久成人热| 久久精品一区二区三区不卡| 国产欧美日本一区二区三区| 久久婷婷激情| 欧美日韩视频在线一区二区| 国产亚洲精品自拍| 欧美午夜精品久久久久久人妖| 欧美一级一区| 国产精品国产自产拍高清av王其| 免费日韩成人| 欧美本精品男人aⅴ天堂| 欧美一区二区免费视频| 国产精品分类| 国语自产精品视频在线看| 欧美视频在线观看视频极品| 亚洲乱码久久| 亚洲欧美国产毛片在线| 欧美色网一区二区| 欧美韩日一区二区| 亚洲国产精品久久久久| 亚洲福利视频在线| 国产精品毛片a∨一区二区三区|国| 久久精品国语| 亚洲一级在线| 亚洲一级免费视频| 亚洲精品视频一区| 久久激情五月丁香伊人| 亚洲国产精品专区久久| 欧美主播一区二区三区美女 久久精品人| 亚洲精品国精品久久99热一| 在线免费一区三区| 亚洲成人资源网| 亚洲欧美一区二区在线观看| 欧美日本精品在线| 香蕉尹人综合在线观看| 欧美在线免费视屏| 黄色成人av在线| 国产在线高清精品| 妖精成人www高清在线观看| 国产精品免费一区豆花| 亚洲欧美色一区| 亚洲日韩视频| 欧美aa在线视频| 亚洲午夜精品久久久久久浪潮| 欧美日韩一区免费| 红杏aⅴ成人免费视频| 一区二区三欧美| 亚洲免费电影在线观看| 欧美精品一区二区三区高清aⅴ| 欧美日韩在线播放一区二区| 国产性做久久久久久| 欧美日韩在线直播| 亚洲日本激情| 亚洲精品中文字幕女同| 在线日本成人| 亚洲欧洲中文日韩久久av乱码| 亚洲国产精品视频一区| 欧美日韩精品在线观看| 亚洲愉拍自拍另类高清精品| 久久精品国产99精品国产亚洲性色| 中文国产一区| 亚洲欧洲日韩在线| 久久激情视频免费观看| 国产精品稀缺呦系列在线| 欧美国产日本在线| 娇妻被交换粗又大又硬视频欧美| 国产伦精品一区二区三区照片91| 欧美一区2区三区4区公司二百| 欧美大片在线观看一区| 亚洲欧美另类在线观看| 欧美国产一区二区| 久久www免费人成看片高清| 欧美激情网站在线观看| 亚洲二区免费| 欧美激情日韩| 国产精品视频免费在线观看| 久久www免费人成看片高清| 国产资源精品在线观看| 国产精品成人观看视频国产奇米| 久久不射中文字幕| 久久精品亚洲一区二区| 中文一区二区| 国产日韩欧美一区| 噜噜爱69成人精品| 国产在线精品成人一区二区三区| 欧美人成在线视频| 亚洲第一在线综合在线| 欧美高清在线一区二区| 欧美亚洲在线视频| 亚洲精品视频在线播放| 国产精品ⅴa在线观看h| 蘑菇福利视频一区播放| 一本色道久久综合亚洲精品高清| 久久嫩草精品久久久久| 亚洲人久久久| 国产精品视频一二| 日韩视频永久免费观看| 欧美日韩精品免费观看视一区二区| 国产日韩欧美制服另类| 欧美国产视频在线观看| 久久精品天堂| 欧美日韩大陆在线| 欧美日韩国产综合在线| 国产噜噜噜噜噜久久久久久久久| 久久影院午夜论| 久久国产精品99国产精| 亚洲国产精品久久精品怡红院| 久久精品一区二区三区不卡牛牛| 午夜久久久久久久久久一区二区| 午夜精品久久久久久久| 久久久久久网站| 亚洲欧洲av一区二区三区久久| 国产精品国产自产拍高清av王其| 欧美另类极品videosbest最新版本| 国产乱肥老妇国产一区二| 亚洲区国产区| 久久国产精品高清| 国产欧美综合在线| 欧美日韩在线观看一区二区三区| 国产女优一区| 狠狠色狠狠色综合日日五| 久久亚洲欧美国产精品乐播| 蜜桃精品一区二区三区| 玖玖玖国产精品| 国产精品综合色区在线观看| 亚洲欧美中文另类| 亚洲成色www久久网站| 国产精品v日韩精品v欧美精品网站| 欧美吻胸吃奶大尺度电影| 欧美一区国产二区| 国产一区亚洲一区| 99riav久久精品riav| 免费在线一区二区| 国产一区二区按摩在线观看| 久久综合国产精品| 最新亚洲电影| 久久一区激情| 在线亚洲免费| 欧美激情bt| 一区视频在线播放| 99精品热视频| 国产精品日韩二区| 欧美日韩亚洲综合在线| 国产精品久久久久91| 国产中文一区| 国产视频精品xxxx| 亚洲在线观看免费视频| 亚洲人成网站精品片在线观看| 久久久综合精品| 欧美三级午夜理伦三级中视频| 欧美亚洲视频| 亚洲伊人色欲综合网| 国内精品国语自产拍在线观看| 好吊妞**欧美| 久久婷婷激情| 国产一区香蕉久久| 亚洲国产欧美国产综合一区| 国产精品综合久久久| 国产精品久久综合|