[發明專利]一種實現網絡聊天室的方法及服務器有效
| 申請號: | 201510295670.5 | 申請日: | 2015-06-02 |
| 公開(公告)號: | CN105007213B | 公開(公告)日: | 2019-04-16 |
| 發明(設計)人: | 陳正超;周平 | 申請(專利權)人: | 貴陽語玩科技有限公司 |
| 主分類號: | H04L12/58 | 分類號: | H04L12/58 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 550022 貴州貴陽國家高新*** | 國省代碼: | 貴州;52 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 實現 網絡 聊天室 方法 服務器 | ||
本申請公開了一種實現網絡聊天室的方法及服務器,所述方法包括:創建多個線程,其中包括至少一個主線程和至少一個服務線程,服務線程服務于網絡聊天室的多個聊天房間;運行主線程,接收聊天用戶發送的數據包,將接收到的數據包插入到發送用戶對應的緩沖器中,其中,每個用戶均對應至少一個緩沖器;運行服務線程,輪詢服務線程各自服務的多個聊天房間中的聊天用戶,從輪詢到的聊天用戶所對應的緩沖器中提取數據包進行數據處理,將處理后的數據分發給輪詢到的用戶所在聊天房間中的聊天用戶。本申請能夠減少服務器的開銷,充分利用服務器的CPU資源,使單臺服務器能夠支撐更多的用戶,最大程度的利用服務器的硬件資源,降低服務器的硬件成本。
技術領域
本發明涉及互聯網技術領域,尤其涉及一種實現網絡聊天室的方法及服務器。
背景技術
隨著互聯網的發展,網絡聊天室已成為一種常見的網絡溝通工具,是一個可供多人進行實時交談、聊天的網絡場所。網絡聊天室包括視頻聊天室、語音聊天室和文字聊天室等。
每個網絡聊天室可以分成多個聊天房間,網絡用戶經過注冊后,可以選擇進入其中一個聊天房間,可以在聊天房間里面與房間內的其他用戶進行網絡對話,互相交流信息。
目前的網絡聊天室的實現過程是通過服務器將客戶端的文字、音頻、視頻信息等轉發到聊天房間的其他客戶端。目前對每個房間的數據處理都是由服務線程完成的,并且是為每一個房間配置一個服務線程。這也就意味著服務器上的房間越多,服務線程也就越多,由于服務線程的數量眾多,操作系統就需要不停的進行調度以保證每個服務線程都能得到時間使用處理器(CPU)資源來執行代碼,調度本身也是需要CPU開銷,所以線程數量越多,操作系統在線程調度上的開銷也就越大,也會需要更多的線程調度的開銷,這樣無疑是資源的巨大浪費。
發明內容
本發明要解決的技術問題是提供一種實現網絡聊天室的方法及服務器,能夠減少服務器的開銷,最大的程度的利用服務器資源。
為解決上述技術問題,本申請的一種實現網絡聊天室的方法,包括:
創建多個線程,其中包括至少一個主線程和至少一個服務線程,所述服務線程服務于網絡聊天室的多個聊天房間;
運行所述主線程,接收聊天用戶發送的數據包,將接收到的數據包插入到發送用戶對應的緩沖器中,其中,每個用戶均對應至少一個緩沖器;
運行所述服務線程,輪詢服務線程各自服務的多個聊天房間中的聊天用戶,從輪詢到的聊天用戶所對應的緩沖器中提取數據包進行數據處理,將處理后的數據分發給輪詢到的用戶所在聊天房間中的聊天用戶。
進一步地,所述創建多個線程包括:
創建與服務器的處理器的核數相同數量的線程。
進一步地,所述方法還包括:
對多個線程均需要使用的臨界資源設置讀文件鎖;
在線程需要訪問所述臨界資源時對所述讀文件鎖進行搶鎖,搶鎖成功的線程對所需訪問的臨界資源進行內存拷貝,然后釋放讀文件鎖,在釋放讀文件鎖后采用拷貝得到的臨界資源進行相應操作,其中,所述讀文件鎖允許多個線程同時訪問臨界資源。
進一步地,所述方法還包括:
對多個線程均需要使用的臨界資源還設置寫文件鎖;
在線程需要寫所述臨界資源時對所述寫文件鎖進行搶鎖,搶鎖成功的線程對所述臨界資源進行寫操作,在搶鎖成功的線程對所述臨界資源進行寫操作的過程中禁止其他線程使用所述臨界資源。
進一步地,所述方法還包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于貴陽語玩科技有限公司,未經貴陽語玩科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510295670.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:網絡信息處理平臺
- 下一篇:一種基于HTTP協議的自動測試方法及系統





