在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > LabVIEW程序設(shè)計模式(五)—生產(chǎn)者/消費者模式(2)_VI的可重入性

            LabVIEW程序設(shè)計模式(五)—生產(chǎn)者/消費者模式(2)_VI的可重入性

            作者: 時間:2017-01-09 來源:網(wǎng)絡(luò) 收藏
            在介紹VI的動態(tài)調(diào)用之前有必要對LabVIEW在執(zhí)行VI過程中的規(guī)則有個大致的了解。眾所周知,LabVIEW是通過VI的文件名(VI Name)來表示獨立的VI的,并不是VI的路徑。因此,LabVIEW不允許具有相同名字的VI同時載入內(nèi)存中,即使這些VI存儲在不同的路徑中。
            在前面曾經(jīng)提到,LabVIEW本身就是一種多線程設(shè)計的語言。那么當同一背面板中放置兩個VI的實例時代碼應(yīng)該如何執(zhí)行呢?在圖 29中,右側(cè)是測試VI運行的時間,左側(cè)是Wait.vi的具體實現(xiàn)代碼,僅僅是等待一定的秒數(shù)。那么在右側(cè)的VI中,輸出的Time是多少呢?是3秒還是2秒?


            圖 29 Reentrant Execution
            打開VI的Highlight調(diào)試工具,可以看出兩個Wait.vi實例的調(diào)用并不是同時執(zhí)行的,而是依次按順序執(zhí)行的,至于哪一個實例先執(zhí)行是不確定的。這是由于LabVIEW本身是并行設(shè)計的,從理論上而言,兩個VI的實例是同步執(zhí)行的,但是如果兩個Wait.vi實例同時執(zhí)行必定會產(chǎn)生參數(shù)賦值紊亂,因為LabVIEW只允許內(nèi)存中存在一個名稱的VI。因此,此時Time的輸出結(jié)果是3秒。
            如果在實際使用中需要這樣的應(yīng)用該如何解決呢?LabVIEW提供了VI的可重入技術(shù),打開Wait.vi,單擊按鍵,選擇圖 30所示的Reentrant execution選項。此時再次運行Time的輸出結(jié)果是2秒。從Highlight的運行過程來看,兩個Wait.vi實例是同時執(zhí)行的,因此總的運行時間就是1秒。


            圖 30 VI Properties
            事實上,LabVIEW的可重入技術(shù)相當于在原有VI的基礎(chǔ)上產(chǎn)生了一個相同的副本,打開Wait.vi從標題欄可以看出VI的名稱為Wait.vi:1(clone)。同理這是由于LabVIEW中不允許內(nèi)存中的VI存在同名,VI的可重入技術(shù)相當于產(chǎn)生了與原VI具有同樣功能的新VI并且修改了該VI的命名。
            在實際應(yīng)用中,需要根據(jù)情況決定是否設(shè)置VI的可重入屬性,靈活使用。并不是需要將所有的VI都設(shè)置為可重入,那將占據(jù)大量的內(nèi)存資源。


            評論


            技術(shù)專區(qū)

            關(guān)閉