999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

線程技術在電話語音查詢系統中的應用

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

梁宇恩 梁啟來

[摘 要]本文采用線程技術設計了農產品電話語音查詢系統,實現了農產品追溯碼校驗、追溯記錄查詢和語音合成,系統工作效率較高,運行穩定。

[關鍵詞]線程 數據庫 追溯系統

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

1 關于線程

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

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

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

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

2 語音查詢系統線程設計

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

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

(2)查詢來電歸屬地。

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

(4)查詢追溯碼對應的農產品追溯記錄。

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

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

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

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

3 實現方法和結果

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

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

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

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

4 結語

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

[參考文獻]

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

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

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

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

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 一级毛片免费不卡在线视频| 丁香婷婷激情网| 人妻免费无码不卡视频| 婷婷色狠狠干| 国产三区二区| 99热最新网址| 欧美日韩在线国产| 福利片91| 亚洲一区二区三区在线视频| 亚洲成人网在线观看| 日韩福利在线观看| 色哟哟国产精品| 日韩欧美在线观看| 欧美在线一二区| 思思热在线视频精品| 亚洲天堂视频网站| 女人av社区男人的天堂| 在线综合亚洲欧美网站| 青草精品视频| 一级做a爰片久久免费| 精品無碼一區在線觀看 | 女人18毛片一级毛片在线 | 亚洲无码免费黄色网址| 亚洲国产精品日韩欧美一区| 在线看片中文字幕| 在线播放91| 亚洲乱强伦| 中文成人在线视频| 一级一毛片a级毛片| 免费在线看黄网址| 成人午夜视频网站| 久久久精品无码一区二区三区| 亚洲欧洲日韩久久狠狠爱| 毛片一级在线| 亚洲AV电影不卡在线观看| 亚洲香蕉久久| 女人18毛片水真多国产| 黄色免费在线网址| 中国一级毛片免费观看| 国产精品大尺度尺度视频| 喷潮白浆直流在线播放| 久久亚洲国产视频| 亚洲精品第一页不卡| 在线播放国产99re| 精品人妻无码区在线视频| 日韩毛片在线视频| 91在线一9|永久视频在线| 日本不卡视频在线| 国产美女自慰在线观看| 欧美午夜在线播放| 不卡网亚洲无码| 欧美日韩v| 亚洲综合狠狠| 人妻丝袜无码视频| 欧美色丁香| 国产精品成人免费综合| 亚洲男人的天堂视频| 国产精品对白刺激| 高清免费毛片| 免费欧美一级| 亚洲精品中文字幕无乱码| 成人看片欧美一区二区| 在线无码九区| www.狠狠| 亚洲天堂免费在线视频| 国产后式a一视频| 毛片网站观看| 91精品国产91久无码网站| 国产成人精品免费av| 亚洲av无码人妻| 中文字幕在线看视频一区二区三区| 真人高潮娇喘嗯啊在线观看| 99热免费在线| 青青草原国产一区二区| 啪啪免费视频一区二区| 久久精品无码一区二区国产区| 无码内射在线| 99久久精品视香蕉蕉| 青青草91视频| 色吊丝av中文字幕| 在线视频亚洲欧美| 夜夜爽免费视频|