• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    多線程技術(shù)在繳費(fèi)易系統(tǒng)中的應(yīng)用

    2011-02-17 09:10:53李小明廣東省郵政信息技術(shù)局廣東廣州510006
    中國(guó)科技信息 2011年15期
    關(guān)鍵詞:空閑充值線程

    李小明 廣東省郵政信息技術(shù)局,廣東 廣州 510006

    多線程技術(shù)在繳費(fèi)易系統(tǒng)中的應(yīng)用

    李小明 廣東省郵政信息技術(shù)局,廣東 廣州 510006

    介紹了在linux平臺(tái)下c語(yǔ)言實(shí)現(xiàn)的一種線程池,并在繳費(fèi)易電信充值異常處理中的得到應(yīng)用。使用該線程池可以動(dòng)態(tài)創(chuàng)建管理線程,空閑時(shí)回收資源。在電信充值異常處理的過(guò)程中起到了關(guān)鍵的作用。

    電信充值;多線程;并發(fā)訪問(wèn)

    1.進(jìn)程與線程

    電信充值異常處理的過(guò)程中使用到了多進(jìn)程和多線程。使用子進(jìn)程負(fù)責(zé)處理主要邏輯并在子進(jìn)程中創(chuàng)建多個(gè)線程,每個(gè)線程負(fù)責(zé)處理單獨(dú)的異常邏輯。在主進(jìn)程中監(jiān)控管理子進(jìn)程。

    進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的最小單位。進(jìn)程創(chuàng)建通常調(diào)用fork實(shí)現(xiàn)。創(chuàng)建后子進(jìn)程和父進(jìn)程指向同一內(nèi)存區(qū)域,當(dāng)子進(jìn)程有寫動(dòng)作發(fā)生時(shí),會(huì)把變動(dòng)的區(qū)域拷貝到子進(jìn)程新的地址空間,這樣可以在很大程度上提高創(chuàng)建進(jìn)程的速度。

    當(dāng)運(yùn)行一個(gè)程序時(shí)就相當(dāng)于啟動(dòng)了一個(gè)獨(dú)立進(jìn)程。單CPU系統(tǒng)同時(shí)運(yùn)行多個(gè)進(jìn)程,需要使用并發(fā)技術(shù),一般采用“時(shí)間片輪轉(zhuǎn)進(jìn)程調(diào)度算法”,核心思想為:所有運(yùn)行的進(jìn)程輪流使用CPU,但每個(gè)進(jìn)程允許獨(dú)占CPU的時(shí)間很短,足以讓用戶感覺(jué)不出來(lái)CPU是在輪流為多個(gè)進(jìn)程服務(wù)。但實(shí)際上在任意時(shí)間點(diǎn)有且僅有一個(gè)進(jìn)程獨(dú)占有CPU。如果是多個(gè)CPU的系統(tǒng),多個(gè)進(jìn)程就是可以真正的同時(shí)運(yùn)行。

    線程是進(jìn)程的一個(gè)實(shí)體,是CPU分配和調(diào)度的最小單位。線程基本上不擁有系統(tǒng)資源。多線程可以使多個(gè)線程并行的工作以完成一個(gè)業(yè)務(wù)邏輯單元,這樣可以有效的提高系統(tǒng)效率。

    交費(fèi)易系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)中面臨業(yè)務(wù)邏輯比較復(fù)雜、業(yè)務(wù)數(shù)據(jù)量比較大、對(duì)數(shù)據(jù)實(shí)時(shí)處理性能要求比較高、對(duì)健壯性和安全性要求比較高、要求系統(tǒng)跨平臺(tái),因此設(shè)計(jì)過(guò)程中采用了以業(yè)務(wù)邏輯單元來(lái)劃分進(jìn)程。一個(gè)獨(dú)立的業(yè)務(wù)邏輯可以用一個(gè)單獨(dú)的進(jìn)程來(lái)運(yùn)行管理。因此,將電信充值異常處理單獨(dú)設(shè)計(jì)成一個(gè)獨(dú)立進(jìn)程來(lái)完成業(yè)務(wù)邏輯。

    由于異常情況常常無(wú)法預(yù)料并且時(shí)有發(fā)生故需要頻繁創(chuàng)建銷毀線程來(lái)處理,這樣在一定程度上會(huì)消耗更多系統(tǒng)資源,導(dǎo)致效率不高,因此采用提前創(chuàng)建需要數(shù)量的線程并使用線程池來(lái)管理線程。

    在業(yè)務(wù)處理過(guò)程中需要和第三方交費(fèi)易通信,包括發(fā)送、接收?qǐng)?bào)文、加密解密、驗(yàn)證有效性等。進(jìn)程間通訊使用套接字,這是由于使用Socket可以有效地支持分布式部署,而且可以在多種編程語(yǔ)言上比較容易地實(shí)現(xiàn)。

    2.線程池設(shè)計(jì)與實(shí)現(xiàn)

    線程池的設(shè)計(jì)主要包括:首先在應(yīng)用開(kāi)始執(zhí)行時(shí)從配置文件讀取線程池的大小,創(chuàng)建并初始化線程池,將程序處理過(guò)程關(guān)鍵信息記錄到日志中。然后,創(chuàng)建一個(gè)調(diào)度函數(shù),當(dāng)有新任務(wù)時(shí)創(chuàng)建或調(diào)度一個(gè)線程完成業(yè)務(wù)邏輯,當(dāng)線程池中線程數(shù)小于最大線程數(shù)并且無(wú)閑置線程時(shí)則創(chuàng)建新線程,否則使用或等待有空閑線程處理。使用線程條件鎖pthread_cond_t和線程互斥鎖pthread_mutex_t對(duì)線程池進(jìn)行管理。當(dāng)所有線程都被占用時(shí)加鎖等待直到有空閑線程才使用空閑線程處理。最后,在使用完一個(gè)線程后放入線程池中等待繼續(xù)使用,并使用 pthread_cond_signal喚醒等待線程。當(dāng)發(fā)生異?;蛑袛鄷r(shí)等待所有線程處理完畢后回收線程占用的資源。

    3.充值異常處理邏輯分析

    充值中如出現(xiàn)第三方返回超時(shí)則記錄訂單狀態(tài)為超時(shí),并由后臺(tái)異常處理程序在獨(dú)立線程中以socket短連接的方式給第三方發(fā)送沖正申請(qǐng)查詢交易,如果返回成功則根據(jù)返回結(jié)果更新訂單狀態(tài),如果超時(shí)無(wú)返回,則記錄該訂單為待沖正狀態(tài),并由后臺(tái)沖正程序向第三方發(fā)起沖正交易。

    4.將線程池應(yīng)用到充值異常處理中

    根據(jù)線程池的設(shè)計(jì)可以在線程創(chuàng)建函數(shù)里調(diào)用充值異常處理函數(shù),此函數(shù)主要包括:數(shù)據(jù)庫(kù)讀寫操作,socket通信等。數(shù)據(jù)庫(kù)操作主要包括:打開(kāi)、關(guān)閉數(shù)據(jù)庫(kù)連接;讀取,修改訂單狀態(tài);根據(jù)第三方返回值回滾額度;記錄日志及流水等。socket通信主要包括:按協(xié)議組裝發(fā)送報(bào)文及接收分解報(bào)文。

    5.結(jié)語(yǔ)

    該線程池在電信業(yè)務(wù)異常處理的應(yīng)用中通過(guò)在多并發(fā),大數(shù)據(jù)量,持續(xù)性等驗(yàn)證中表現(xiàn)穩(wěn)定,為以后的項(xiàng)目提供了借鑒和參考的作用。

    [1]鄭燕飛,余海燕. Linux 得多線程機(jī)制探討與實(shí)踐[J].計(jì)算機(jī)應(yīng)用.2001

    [2]周麗等.LINUX系統(tǒng)下多線程與多進(jìn)程性能分析.微計(jì)算機(jī)信息.2005

    [3]王楓,羅家融.Linux 下多線程Socket 通訊的研究與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用.2004

    參考文獻(xiàn)

    [1]冼土明等.基于ZigBee-GPRS 技術(shù)的無(wú)線傳感網(wǎng)絡(luò)[J].軟件2011第32卷第1期:58-60

    李小明(1981年04月),男,陜西漢中,軟件開(kāi)發(fā)工程師,研究方向:分布式應(yīng)用、應(yīng)用系統(tǒng)架構(gòu)設(shè)計(jì)開(kāi)發(fā)。

    10.3969/j.issn.1001-8972.2011.15.052

    猜你喜歡
    空閑充值線程
    恩賜
    詩(shī)選刊(2023年7期)2023-07-21 07:03:38
    “鳥”字謎
    小讀者之友(2019年9期)2019-09-10 07:22:44
    奇妙的智商充值店
    彪悍的“寵”生,不需要解釋
    充值
    淺談linux多線程協(xié)作
    基于NFC的ETC卡空中充值服務(wù)應(yīng)用系統(tǒng)實(shí)現(xiàn)
    WLAN和LTE交通規(guī)則
    CHIP新電腦(2016年3期)2016-03-10 14:09:48
    ETC網(wǎng)上充值平臺(tái)介紹與分析
    Linux線程實(shí)現(xiàn)技術(shù)研究
    湛江市| 汤原县| 竹溪县| 抚州市| 洛隆县| 景宁| 抚顺市| 务川| 汉寿县| 于都县| 余姚市| 盈江县| 永仁县| 项城市| 丹寨县| 巩义市| 连平县| 福建省| 霞浦县| 彭山县| 高清| 辉南县| 海门市| 阜阳市| 全州县| 霍城县| 手游| 德清县| 长岛县| 五指山市| 秦安县| 义马市| 景德镇市| 伊宁县| 屯昌县| 濉溪县| 井冈山市| 永泰县| 大同市| 乌鲁木齐市| 澎湖县|