• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    異步網絡應用程序處理方法技術

    技術編號:8682562 閱讀:271 留言:0更新日期:2013-05-09 02:37
    本發明專利技術公開的異步網絡應用程序處理方法包括:建立多個線程,其中各個線程具有相同的運行邏輯;其中一個線程獲得全局鎖,從而獲得對事件隊列的處理權;具有事件隊列處理權的線程查詢待處理事件隊列,當待處理事件隊列中存在待處理事件時,則該線程讀取一個待處理事件,以便對該待處理事件進行處理;當待處理事件隊列中不存在待處理事件時,則該線程對事件列表進行監測,當該線程監測到事件時,將所述事件加入待處理事件隊列。本發明專利技術通過建立多個等效的線程以及多個線程之間對全局鎖的競鎖邏輯,實現了對多線程簡潔、高效的管理,節約了軟硬件資源,通過簡潔的線程模型進行超時處理,實現了輕量級的定時器機制和安全高效的異步消息機制。

    【技術實現步驟摘要】

    本專利技術涉及網絡通信技術,尤其涉及一種。
    技術介紹
    異步網絡應用,是指當發起一個線程的調度后,調用者并不需要等待結果,而可以去處理其他事件,而執行該線程調用的邏輯單元在完成調用后,將結果通過狀態、消息、或者回調的方式通知調用者。而與之相對的同步網絡應用是指調用者發起調度后,不執行其他任務,只等待該調用的結果。可以看出,異步網絡應用是一種效率更高的網絡通信方式。隨著互聯網的快速發展,各種異步網絡應用不斷豐富,因此,對網絡應用軟件的穩定性、高效性都提出了越來越高的要求。目前被廣泛應用的有以下幾種:(I)多線程處理方法。在該方法中,對于服務器與單個客戶端之間建立的會話,對于服務器與單個客戶端之間建立的會話都建立獨立的進程/線程進行處理。因此,這種方法將創建大量的進程/線程,從而消耗大量的系統資源,而且,眾多線程之間的同步和切換也會導致系統效率的大幅下降。(2)單線程處理方法。在該方法中,以單一的線程來處理所有的網絡會話的相關運算。即所有網絡相關操作,都由一個線程,通過操作系統支持的多路復用技術,實現對多會話網絡業務的并發支持。這種模型可以節約系統資源,但其響應速度和并發度都存在不足,應用編寫者任何一行不合理的代碼都會導致整個系統失去響應。(3)線程池處理方法。在該方法中,需要建立有限的多個線程,所有的網絡相關操作,由線程池中的有限個線程來承載。在所述多個線程中,設置一個管理線程,由所述管理線程來調度線程池中的其他線程,并且處理各個事件。例如,當一個管理線程發現了一個事件,根據不同的網絡應用,所述管理線程有可能分配其他線程去處理;或者,該管理線程也可能由自身來處理該事件,即將自身降級為一般線程,而將其他線程升級為管理線程。可以看出,由于這種線程池處理方法引入了管理線程,使得多個線程間的線程均衡算法較為復雜,因此可擴展性和可維護性不強。而且,均衡算法若設計得不好,還會帶來很大的系統開銷。網絡應用程序會大量地采用定時器,在現有的應用中,很多程序會以一個或多個線程固定作為定時器的超時處理線程,即為了定時器而新建線程,這會引起系統性能的大幅下降,在定時器的易用性和高效性上都會存在很大問題。另外,在一個網絡應用中,應用內部的邏輯對象之間需要大量的通信。例如:邏輯對象A需要調用邏輯對象B執行一個持續時長不確定的事務,而對象B在執行完畢后,需要通知對象A。在現有的很多實現中,這一般通過如下方式來實現:對象A在調用對象B時,傳給B —個指向某個屬于A的函數的指針,當對象B完成事務后,通過這個指針調用對象A的某個函數,從而達到通知對象A的目的。在這種實現方式中,指針只有通信的對象雙方知悉,通信也只在對象雙方進行,系統的線程并未參與對通信內容、通信過程的管理,一旦對象的雙方或一方注銷,就會發生通信內容的丟失甚至程序失敗,這會危及整個系統的安全,也不利于網絡應用程序的維護和擴展。
    技術實現思路
    針對現有技術的缺陷,本專利技術的目的是提供一種能夠簡便地實現線程和事件管理的。本專利技術提供的包括:a.建立多個線程,其中各個線程具有相同的運行邏輯;b.其中一個線程獲得全局鎖,從而獲得對事件隊列的處理權;c.具有事件隊列處理權的線程查詢待處理事件隊列,當待處理事件隊列中存在待處理事件時,則該線程讀取一個待處理事件,以便對該待處理事件進行處理;當待處理事件隊列中不存在待處理事件時,則該線程對事件列表進行監測,當該線程監測到事件時,將所述事件加入待處理事件隊列;d.在出現以下三種情況的任何一種時,當前獲得所述處理權的線程退出全局鎖,由所有線程競爭全局鎖,并執行步驟b: (I)當前獲得所述處理權的線程讀取一個待處理事件后退出全局鎖,并且在處理完該事件后與其他線程競爭全局鎖;(2)當前獲得所述處理權的線程將事件列表中的事件都加入待處理事件隊列;(3)當前獲得所述處理權的線程對事件列表完成了一個線程循環周期的監測。優選地,步驟c包括:cll.對定時器事件進行監測;cl2.在一次監測完成之前,計算所有定時器各自距下次超時的時間差,當一個定時器的時間差小于定時器的最小精度時,則該定時器到期,具有事件隊列處理權的線程將其轉換成超時事件,并將該超時事件加入待處理事件隊列;cl3.具有事件隊列處理權的線程查詢所述待處理事件隊列,當待處理事件隊列中存在超時事件時,則該線程對所述超時事件進行處理;當待處理事件隊列中不存在待處理事件時,則該線程對事件列表進行監測,當該線程監測到超時事件時,將超時事件加入待處理事件隊列。優選地,步驟cll還包括,具有事件隊列處理權的線程找出所有定時器的最小到期時間,以所述最小到期時間和最小線程循環周期中的最小值為監測周期,對定時器事件進行監測。優選地,本專利技術的還包括:將定時器事件從監測的事件中刪除,以實現對定時器的注銷。優選地,多個線程隨機地獲得全局鎖。優選地,步驟c還包括以下步驟:c21.當一個源對象需要發送消息時,則所述源對象通過異步消息發送接口向目的對象發送消息,同時,源對象在消息隊列中記錄異步消息記錄項;c22.具有事件隊列處理權的線程根據接收到的告知信息從消息隊列中接收異步消息記錄項;c23.根據所述記錄項讀取記錄的內容,所述具有事件隊列處理權的線程將異步消息記錄項轉換成待處理的異步消息事件,并將所述異步消息事件加入待處理事件隊列。優選地,步驟c21包括:當僅有該源對象向消息隊列發送了異步消息記錄項時,則在該源對象向消息隊列發送異步消息記錄項的同時,該源對象向具有事件隊列處理權的線程發送告知信息。優選地,源對象通過特定的管道向具有事件隊列處理權的線程發送告知信息。優選地,所述特定的管道是命名通道、文件句柄或套接字。優選地,所述異步消息記錄項包括源對象ID、目的對象ID、消息內容。相對于現有技術,本專利技術的,通過建立多個等效的線程以及多個線程之間對全局鎖的競鎖邏輯,實現了對多線程簡潔、高效的管理,節約了軟硬件資源,簡化的異步網絡應用程序的處理算法。進一步的,本專利技術還在上述線程調度的基礎上提供了相應的定時器事件管理方法,通過簡潔的線程模型進行超時處理,從而在不引入其他資源情況下,實現了輕量級的定時器機制。而且,本專利技術還在上述線程調度的基礎上實現了一種對象之間的通信管理方法,通過線程對通信雙方消息交互的處理,保證了對象之間通信的安全性,使得異步網絡應用程序的運行更加穩定。附圖說明圖1是本專利技術一種具體實施方式的的流程圖。具體實施例方式如圖1所示,本專利技術一種具體實施方式的異步網絡應用處理方法包括以下步驟:在步驟101,建立多個線程。所建立的多個線程具有等同的運行邏輯,S卩,各個線程之間的地位是平等的,不存在對于其他線程具有管理支配功能的管理線程,各線程相互為等效線程。線程對事件的處理執行,線程通過獲得全局鎖來獲得對事件的處理權。線程的建立可以通過應用程序接口來完成。全局鎖具有互斥的特性,S卩,任意時刻只有一個邏輯模塊能獲得鎖,從而任意時刻只有一個邏輯模塊能獲得鎖的線程即獲得隊列的處理權。在本專利技術中,所述邏輯模塊可以是步驟101中建立的多個線程中的任意一個。建立線程可以通過各種適合的編程手段來實現,例如,在程序的主函數內,通過應用程序接口建立多個線程,用戶通過應用程序接口的參數,傳入系統希望建立的線程個數。對于多CPU的計算機系統,為本文檔來自技高網
    ...

    【技術保護點】
    一種異步網絡應用程序處理方法,其特征在于,所述方法包括:a.建立多個線程,其中各個線程具有相同的運行邏輯;b.其中一個線程獲得全局鎖,從而獲得對事件隊列的處理權;c.具有事件隊列處理權的線程查詢待處理事件隊列,當待處理事件隊列中存在待處理事件時,則該線程讀取一個待處理事件,以便對該待處理事件進行處理;當待處理事件隊列中不存在待處理事件時,則該線程對事件列表進行監測,當該線程監測到事件時,將所述事件加入待處理事件隊列;d.在出現以下三種情況的任何一種時,當前獲得所述處理權的線程退出全局鎖,由所有線程競爭全局鎖,并執行步驟b:(1)當前獲得所述處理權的線程讀取一個待處理事件后退出全局鎖,并且在處理完該事件后與其他線程競爭全局鎖;(2)當前獲得所述處理權的線程將監測到的事件都加入待處理事件隊列;(3)當前獲得所述處理權的線程對事件列表完成了一個線程循環周期的監測。

    【技術特征摘要】

    【專利技術屬性】
    技術研發人員:何林強周明偉張興明傅利泉朱江明吳軍吳堅
    申請(專利權)人:浙江大華技術股份有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 中文午夜人妻无码看片| 亚洲国产综合无码一区二区二三区 | 中文字幕人妻无码专区| 寂寞少妇做spa按摩无码| 人妻无码αv中文字幕久久琪琪布| 无码精品不卡一区二区三区| 中日精品无码一本二本三本| 亚洲av午夜精品无码专区| 国产在线无码视频一区二区三区| 无码夜色一区二区三区| 亚洲av无码潮喷在线观看| 亚洲AV无码专区日韩| 无码国内精品人妻少妇| 免费一区二区无码东京热| 麻豆精品无码国产在线果冻| 无码国产午夜福利片在线观看| 亚洲Av无码乱码在线观看性色 | 免费无码午夜福利片 | 亚洲精品GV天堂无码男同| 亚洲动漫精品无码av天堂| 国产亚洲大尺度无码无码专线| 国产精品无码一区二区三区免费| 中文字幕av无码无卡免费| 在线观看无码AV网站永久免费| 无码A级毛片免费视频内谢| 久久成人无码国产免费播放| 亚洲色中文字幕无码AV| 少妇无码太爽了不卡在线观看| 国产午夜鲁丝片AV无码免费| 免费人成无码大片在线观看| 亚洲AV无码之国产精品| 亚洲精品无码人妻无码| 无码尹人久久相蕉无码| 国产精品无码无卡在线观看久| 2019亚洲午夜无码天堂| 亚洲综合无码一区二区痴汉| 中文字幕无码免费久久99| 亚洲GV天堂无码男同在线观看 | 久久精品亚洲中文字幕无码网站| 中文字幕人妻无码一夲道| 无码人妻精品一区二区三区66 |