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

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

2009-01-06 04:55:38梁宇恩梁?jiǎn)?lái)
關(guān)鍵詞:數(shù)據(jù)庫(kù)

梁宇恩 梁?jiǎn)?lái)

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

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

[中圖分類號(hào)]TP311[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1007-9416(2009)11-0035-01

1 關(guān)于線程

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

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

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

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

2 語(yǔ)音查詢系統(tǒng)線程設(shè)計(jì)

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

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

(2)查詢來(lái)電歸屬地。

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

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

(5)對(duì)追溯記錄進(jìn)行語(yǔ)音合成。

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

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

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

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

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

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

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

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

4 結(jié)語(yǔ)

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

[參考文獻(xiàn)]

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

[2] 何鵬飛.Delphi 8程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2004.262-290.

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

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

猜你喜歡
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
兩種新的非確定數(shù)據(jù)庫(kù)上的Top-K查詢
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 亚洲一级毛片| 波多野结衣一二三| 国产欧美亚洲精品第3页在线| 91无码国产视频| 中文字幕在线欧美| 亚洲第一成网站| 欧美日韩国产精品va| 人妖无码第一页| 久久亚洲国产一区二区| 国产主播一区二区三区| 在线国产毛片手机小视频| 伊伊人成亚洲综合人网7777| 成年人国产视频| 国产成人精品高清不卡在线| 99久久精品视香蕉蕉| 国产男人天堂| 人妻丝袜无码视频| 综合亚洲网| 囯产av无码片毛片一级| 国产丝袜第一页| 亚洲精品波多野结衣| 99热国产在线精品99| 97影院午夜在线观看视频| 国产欧美视频在线观看| 亚洲V日韩V无码一区二区| a级毛片视频免费观看| 成AV人片一区二区三区久久| 亚洲一级毛片| 精品99在线观看| 欧美国产日产一区二区| 在线观看91香蕉国产免费| 色综合五月婷婷| 精品五夜婷香蕉国产线看观看| 黄色网址免费在线| 久草网视频在线| 午夜久久影院| 亚洲首页在线观看| 亚洲成a人在线观看| 国内嫩模私拍精品视频| 真人高潮娇喘嗯啊在线观看| 国产福利在线免费观看| 亚洲永久免费网站| 国产精品第一区| 欧美日韩午夜| 亚洲高清资源| 亚洲三级色| 国产成人精品在线1区| 日本成人在线不卡视频| 欧美日韩成人| www.亚洲天堂| a级毛片网| 亚洲视频在线网| 在线99视频| 国产成人高清在线精品| 久久人体视频| 国产噜噜噜| 欧美啪啪一区| 精品日韩亚洲欧美高清a| 华人在线亚洲欧美精品| 美女被狂躁www在线观看| 97se亚洲综合在线| 国产不卡网| 这里只有精品在线播放| 99久久国产自偷自偷免费一区| 国产剧情伊人| 亚洲欧洲日韩久久狠狠爱 | 九色综合伊人久久富二代| 国产jizz| 亚洲性视频网站| 中文字幕1区2区| 亚洲天堂精品在线| 永久在线播放| 成人伊人色一区二区三区| 欧美a在线视频| 色成人综合| 免费一级无码在线网站 | 无码有码中文字幕| 色悠久久久久久久综合网伊人| 亚洲日本中文字幕乱码中文 | 爱做久久久久久| 四虎永久在线视频| 亚洲人成人伊人成综合网无码|