亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        線程技術(shù)在電話語音查詢系統(tǒng)中的應用

        2009-01-06 04:55:38梁宇恩梁啟來
        數(shù)字技術(shù)與應用 2009年11期
        關鍵詞:線程數(shù)據(jù)庫

        梁宇恩 梁啟來

        [摘 要]本文采用線程技術(shù)設計了農(nóng)產(chǎn)品電話語音查詢系統(tǒng),實現(xiàn)了農(nóng)產(chǎn)品追溯碼校驗、追溯記錄查詢和語音合成,系統(tǒng)工作效率較高,運行穩(wěn)定。

        [關鍵詞]線程 數(shù)據(jù)庫 追溯系統(tǒng)

        [中圖分類號]TP311[文獻標識碼]A[文章編號]1007-9416(2009)11-0035-01

        1 關于線程

        線程是指進程中的一個實體,也可以理解為程序中單一的順序控制流,是被系統(tǒng)獨立調(diào)度和分派的基本單位。線程與進程不同,它不擁有系統(tǒng)資源,只能與同屬一個進程的其它線程共享該進程的系統(tǒng)資源。應用線程技術(shù)可編制支持并發(fā)操作的應用程序。

        線程主要包括線程體、線程狀態(tài)和線程優(yōu)先級。線程的主要操作均包含在線程體內(nèi),以C++ Builder TThread類為例,線程初始化后,Execute()方法將被調(diào)用。在繼承的Execute()方法中的代碼就被執(zhí)行。線程狀態(tài)包括新建狀態(tài)、運行狀態(tài)、阻塞狀態(tài)和死亡狀態(tài),表示了線程從創(chuàng)建到消亡的整個生命周期。新建線程對象后,線程處于新建狀態(tài),這時還沒有分配系統(tǒng)資源給線程。調(diào)用線程Execute()方法使線程進入運行狀態(tài),由系統(tǒng)調(diào)度線程使用CPU。線程處于阻塞狀態(tài)時,它不會被分配CPU時間而無法執(zhí)行,也就是被掛起。正常情況下,線程Execute()方法執(zhí)行完畢后,線程進入死亡狀態(tài),釋放占用資源。線程的優(yōu)先級表示該線程的重要程度,優(yōu)先級高的線程獲得CPU時間的機會更大。

        多個線程往往要訪問同一系統(tǒng)資源,因此如何同步多個線程訪問系統(tǒng)資源就非常重要。在Windows操作系統(tǒng)下,線程同步的方法有臨界區(qū)、事件、互斥對象和信號量。

        應用程序如果訪問通訊端口或者數(shù)據(jù)庫等數(shù)據(jù)吞吐速度相對較慢的資源時,多線程應用程序是非常有利的,但是需要注意多線程并不能提高CPU的處理能力。

        2 語音查詢系統(tǒng)線程設計

        利用線程技術(shù)可以使應用系統(tǒng)具備實時處理多任務的能力,所以在開發(fā)農(nóng)產(chǎn)品電話音查詢系統(tǒng)的過程中,用線程技術(shù)較好的滿足了系統(tǒng)開發(fā)需求。農(nóng)產(chǎn)品電話語音查詢系統(tǒng)主要功能如下:

        (1)處理用戶撥入電話,記錄來電號碼和用戶輸入的農(nóng)產(chǎn)品追溯碼。

        (2)查詢來電歸屬地。

        (3)查詢追溯碼所屬企業(yè),驗證追溯碼有效性。

        (4)查詢追溯碼對應的農(nóng)產(chǎn)品追溯記錄。

        (5)對追溯記錄進行語音合成。

        (6)向用戶播放追溯記錄,登記查詢信息。

        農(nóng)產(chǎn)品語音查詢子系統(tǒng)要能實時處理16路接入電話,所以系統(tǒng)主程序部分是以輪詢方式查看電話語音卡16路端口有無電話接入,并且還要將合成的語音向指定端口播放。如果語音查詢子系統(tǒng)功能(2)~功能(5)全部放在主程序部分實現(xiàn),那么勢必造成接入電話和播放語音執(zhí)行時發(fā)生擁塞,導致系統(tǒng)無法正常處理業(yè)務。原因是訪問數(shù)據(jù)庫與語音合成都是比較耗時的操作,全部放在主程序中執(zhí)行是不合適的。為了解決這個問題,采用線程技術(shù)是一個比較好的辦法,具體做法是將功能(2)~功能(5)放在另外一個輔助線程中實現(xiàn)。由于開設太多輔助線程會降低查詢子系統(tǒng)的效率與可靠性,所以本文只建一個輔助線程。農(nóng)產(chǎn)品語音查詢子系統(tǒng)輔助線程部分流程圖如圖1所示。

        輔助線程執(zhí)行代碼開始部分先檢查同步事件是否被主程序觸發(fā),如果同步事件被觸發(fā),首先重置同步事件,然后取出主程序線程安全隊列內(nèi)的任務請求數(shù)據(jù)塊,根據(jù)任務代碼調(diào)用輔助線程相應的成員函數(shù)完成請求功能。輔助線程提供4個成員函數(shù),實現(xiàn)來電歸屬地查詢、追溯企業(yè)代碼查詢、農(nóng)產(chǎn)品追溯記錄查詢和TTS(Text To Sound)語音合成。如果同步事件沒有被觸發(fā),則在一個指定的時間周期后繼續(xù)檢查同步事件是否被觸發(fā)。

        3 實現(xiàn)方法和結(jié)果

        (1)輔助線程要經(jīng)ADO組件訪問SQL Server數(shù)據(jù)庫,所以線程Execute()方法開始處應加入CoInitialize()調(diào)用,線程銷毀前要調(diào)用CoUninitialize(),防止訪問數(shù)據(jù)庫失敗。

        (2)檢查同步事件觸發(fā)部分要判斷各種情況。首先要判斷檢查同步事件的過程是否超時,如果超時則表明該時間段內(nèi)主程序沒有觸發(fā)同步事件,需要返回重新再次檢查。其次,如果同步事件被觸發(fā),則要立即重置同步事件,然后打開主程序中的線程安全隊列,將主線程加入的任務請求數(shù)據(jù)塊取出。接著判斷請求任務代碼,調(diào)用相應成員函數(shù),修改隊列數(shù)據(jù)塊指針內(nèi)容,返回查詢數(shù)據(jù)。最后如果輔助線程異常,則自動退出。

        (3)輔助線程對象由new()指令創(chuàng)建,刪除時采用自動銷毀方式。

        經(jīng)過實測,采用線程技術(shù)的農(nóng)產(chǎn)品電話語音查詢系統(tǒng)工作穩(wěn)定,可以正常處理16路外線電話撥入的查詢追溯記錄請求,用戶平均等待時間小于1秒,極端最長等待時間為5秒,符合實用要求。

        4 結(jié)語

        本文采用線程技術(shù)實現(xiàn)了農(nóng)產(chǎn)品電話語音查詢系統(tǒng),具有占用資源少,工作效率高,運行穩(wěn)定等特點,能夠較好的滿足用戶查詢需求。但是線程應用程序調(diào)試比較復雜,本文采用將中間數(shù)據(jù)寫入文本文件的方法調(diào)試程序。另外,檢查同步事件是否觸發(fā)的時間周期值如何設置才能使系統(tǒng)工作最有效率,這是后續(xù)工作中需要解決的問題。

        [參考文獻]

        [1] John M,Tom C, Harold H. Borland C + + Builder編程指南[M].北京:電子工業(yè)出版社,1998.420-517.

        [2] 何鵬飛.Delphi 8程序設計教程[M].北京:清華大學出版社,2004.262-290.

        [3] Bruce Eckel,Java編程思想[M].北京:機械工業(yè)出版社,2002.594-636.

        [4] 王繼軍.法國畜產(chǎn)品質(zhì)量追溯的做法與思考[J].中國農(nóng)墾,2008,8(1):25-28.

        猜你喜歡
        線程數(shù)據(jù)庫
        Linux 下多線程的方案實現(xiàn)與對比
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        淺談linux多線程協(xié)作
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        基于上下文定界的Fork/Join并行性的并發(fā)程序可達性分析*
        Linux線程實現(xiàn)技術(shù)研究
        數(shù)據(jù)庫
        財經(jīng)(2010年20期)2010-10-19 01:48:32
        久久www免费人成精品| 国产人成午夜免电影观看| 一区二区免费电影| 久久精品韩国日本国产| 中文日本强暴人妻另类视频 | 视频福利一区二区三区| 最好看的亚洲中文字幕 | 亚洲无码视频一区:| 日韩精品中文字幕人妻系列| 青青草原综合久久大伊人精品 | 中文字幕av熟女中文av| 一区二区三区中文字幕| 欧美黑人又粗又大久久久| 免费看一级a女人自慰免费| 日本激情一区二区三区| 国产午夜免费啪视频观看| 少妇人妻中文字幕hd| 狠狠色狠狠色综合日日不卡| 国产成人一区二区三区高清| 精品一区二区三区亚洲综合| 比较有韵味的熟妇无码| 亚洲爆乳无码专区| 亚洲欧美日韩精品久久亚洲区色播 | 国产免费艾彩sm调教视频| 欧美丰满熟妇bbbbbb百度| 久久亚洲精品一区二区| 美女主播网红视频福利一区二区| 色欲av伊人久久大香线蕉影院| 久久久久99精品成人片试看| 国产精品无码久久久久下载 | 日本一区二区三区在线| 一区二区精品天堂亚洲av| 久久精品国产清自在天天线| 乱码午夜-极国产极内射 | 影视先锋av资源噜噜| 国产精品流白浆喷水| 看全色黄大色大片免费久久久| 日本免费大片一区二区三区| 亚洲av无码国产精品久久| 免费无码毛片一区二区三区a片| 国产成人亚洲综合小说区|