亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的方法及服務(wù)器的制造方法

文檔序號(hào):9290016閱讀:217來(lái)源:國(guó)知局
一種實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的方法及服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的方法及服務(wù)器。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)聊天室已成為一種常見(jiàn)的網(wǎng)絡(luò)溝通工具,是一個(gè)可供多 人進(jìn)行實(shí)時(shí)交談、聊天的網(wǎng)絡(luò)場(chǎng)所。網(wǎng)絡(luò)聊天室包括視頻聊天室、語(yǔ)音聊天室和文字聊天室 等。
[0003] 每個(gè)網(wǎng)絡(luò)聊天室可以分成多個(gè)聊天房間,網(wǎng)絡(luò)用戶(hù)經(jīng)過(guò)注冊(cè)后,可以選擇進(jìn)入其 中一個(gè)聊天房間,可以在聊天房間里面與房間內(nèi)的其他用戶(hù)進(jìn)行網(wǎng)絡(luò)對(duì)話(huà),互相交流信息。
[0004] 目前的網(wǎng)絡(luò)聊天室的實(shí)現(xiàn)過(guò)程是通過(guò)服務(wù)器將客戶(hù)端的文字、音頻、視頻信息等 轉(zhuǎn)發(fā)到聊天房間的其他客戶(hù)端。目前對(duì)每個(gè)房間的數(shù)據(jù)處理都是由服務(wù)線(xiàn)程完成的,并且 是為每一個(gè)房間配置一個(gè)服務(wù)線(xiàn)程。這也就意味著服務(wù)器上的房間越多,服務(wù)線(xiàn)程也就越 多,由于服務(wù)線(xiàn)程的數(shù)量眾多,操作系統(tǒng)就需要不停的進(jìn)行調(diào)度以保證每個(gè)服務(wù)線(xiàn)程都能 得到時(shí)間使用處理器(CPU)資源來(lái)執(zhí)行代碼,調(diào)度本身也是需要CPU開(kāi)銷(xiāo),所以線(xiàn)程數(shù)量越 多,操作系統(tǒng)在線(xiàn)程調(diào)度上的開(kāi)銷(xiāo)也就越大,也會(huì)需要更多的線(xiàn)程調(diào)度的開(kāi)銷(xiāo),這樣無(wú)疑是 資源的巨大浪費(fèi)。

【發(fā)明內(nèi)容】

[0005] 本發(fā)明要解決的技術(shù)問(wèn)題是提供一種實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的方法及服務(wù)器,能夠減少 服務(wù)器的開(kāi)銷(xiāo),最大的程度的利用服務(wù)器資源。
[0006] 為解決上述技術(shù)問(wèn)題,本申請(qǐng)的一種實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的方法,包括:
[0007] 創(chuàng)建多個(gè)線(xiàn)程,其中包括至少一個(gè)主線(xiàn)程和至少一個(gè)服務(wù)線(xiàn)程,所述服務(wù)線(xiàn)程服 務(wù)于網(wǎng)絡(luò)聊天室的多個(gè)聊天房間;
[0008] 運(yùn)行所述主線(xiàn)程,接收聊天用戶(hù)發(fā)送的數(shù)據(jù)包,將接收到的數(shù)據(jù)包插入到發(fā)送用 戶(hù)對(duì)應(yīng)的緩沖器中,其中,每個(gè)用戶(hù)均對(duì)應(yīng)至少一個(gè)緩沖器;
[0009] 運(yùn)行所述服務(wù)線(xiàn)程,輪詢(xún)服務(wù)線(xiàn)程各自服務(wù)的多個(gè)聊天房間中的聊天用戶(hù),從輪 詢(xún)到的聊天用戶(hù)所對(duì)應(yīng)的緩沖器中提取數(shù)據(jù)包進(jìn)行數(shù)據(jù)處理,將處理后的數(shù)據(jù)分發(fā)給輪詢(xún) 到的用戶(hù)所在聊天房間中的聊天用戶(hù)。
[0010] 進(jìn)一步地,所述創(chuàng)建多個(gè)線(xiàn)程包括:
[0011] 創(chuàng)建與服務(wù)器的處理器的核數(shù)相同數(shù)量的線(xiàn)程。
[0012] 進(jìn)一步地,所述方法還包括:
[0013] 對(duì)多個(gè)線(xiàn)程均需要使用的臨界資源設(shè)置讀文件鎖;
[0014] 在線(xiàn)程需要訪(fǎng)問(wèn)所述臨界資源時(shí)對(duì)所述讀文件鎖進(jìn)行搶鎖,搶鎖成功的線(xiàn)程對(duì)所 需訪(fǎng)問(wèn)的臨界資源進(jìn)行內(nèi)存拷貝,然后釋放讀文件鎖,在釋放讀文件鎖后采用拷貝得到的 臨界資源進(jìn)行相應(yīng)操作,其中,所述讀文件鎖允許多個(gè)線(xiàn)程同時(shí)訪(fǎng)問(wèn)臨界資源。
[0015] 進(jìn)一步地,所述方法還包括:
[0016] 對(duì)多個(gè)線(xiàn)程均需要使用的臨界資源還設(shè)置寫(xiě)文件鎖;
[0017] 在線(xiàn)程需要寫(xiě)所述臨界資源時(shí)對(duì)所述寫(xiě)文件鎖進(jìn)行搶鎖,搶鎖成功的線(xiàn)程對(duì)所述 臨界資源進(jìn)行寫(xiě)操作,在搶鎖成功的線(xiàn)程對(duì)所述臨界資源進(jìn)行寫(xiě)操作的過(guò)程中禁止其他線(xiàn) 程使用所述臨界資源。
[0018] 進(jìn)一步地,所述方法還包括:
[0019] 所述網(wǎng)絡(luò)聊天室為語(yǔ)音聊天室,在新創(chuàng)建語(yǔ)音聊天房間時(shí),計(jì)算每個(gè)服務(wù)線(xiàn)程的 負(fù)荷,將新創(chuàng)建的語(yǔ)音聊天房間分配給負(fù)荷最小的服務(wù)線(xiàn)程,采用負(fù)荷=發(fā)言用戶(hù)數(shù)量+ 旁聽(tīng)用戶(hù)數(shù)量/開(kāi)銷(xiāo)等效參數(shù),計(jì)算服務(wù)線(xiàn)程的負(fù)荷,其中,所述發(fā)言用戶(hù)數(shù)量為服務(wù)線(xiàn)程 所服務(wù)的全部聊天房間中的發(fā)言用戶(hù)的總數(shù)量,所述旁聽(tīng)用戶(hù)數(shù)量為服務(wù)線(xiàn)程所服務(wù)的全 部聊天房間中的旁聽(tīng)用戶(hù)的總數(shù)量,所述開(kāi)銷(xiāo)等效參數(shù)為旁聽(tīng)用戶(hù)所占開(kāi)銷(xiāo)與發(fā)言用戶(hù)所 占開(kāi)銷(xiāo)的等效值。
[0020] 進(jìn)一步地一種服務(wù)器,包括:線(xiàn)程創(chuàng)建單元、主線(xiàn)程運(yùn)行單元和服務(wù)線(xiàn)程運(yùn)行單 元,其中:
[0021] 所述線(xiàn)程創(chuàng)建單元,用于創(chuàng)建多個(gè)線(xiàn)程,其中包括至少一個(gè)主線(xiàn)程和至少一個(gè)服 務(wù)線(xiàn)程,所述服務(wù)線(xiàn)程服務(wù)于網(wǎng)絡(luò)聊天室的多個(gè)聊天房間;
[0022] 所述主線(xiàn)程運(yùn)行單元,用于運(yùn)行所述主線(xiàn)程,接收聊天用戶(hù)發(fā)送的數(shù)據(jù)包,將接收 到的數(shù)據(jù)包插入到發(fā)送用戶(hù)對(duì)應(yīng)的緩沖器中,其中,每個(gè)用戶(hù)均對(duì)應(yīng)至少一個(gè)緩沖器;
[0023] 所述服務(wù)線(xiàn)程運(yùn)行單元,用于運(yùn)行所述服務(wù)線(xiàn)程,輪詢(xún)服務(wù)線(xiàn)程各自服務(wù)的多個(gè) 聊天房間中的聊天用戶(hù),從輪詢(xún)到的聊天用戶(hù)所對(duì)應(yīng)的緩沖器中提取數(shù)據(jù)包進(jìn)行數(shù)據(jù)處 理,將處理后得到的數(shù)據(jù)分發(fā)給輪詢(xún)到的用戶(hù)所在聊天房間中的聊天用戶(hù)。
[0024] 進(jìn)一步地,所述線(xiàn)程創(chuàng)建單元?jiǎng)?chuàng)建多個(gè)線(xiàn)程包括:
[0025] 創(chuàng)建與服務(wù)器的處理器的核數(shù)相同數(shù)量的線(xiàn)程。
[0026] 進(jìn)一步地,還包括文件鎖單元,其中:
[0027] 所述文件鎖單元,用于對(duì)多個(gè)線(xiàn)程均需要使用的臨界資源設(shè)置讀文件鎖;
[0028] 所述主線(xiàn)程運(yùn)行單元和服務(wù)線(xiàn)程運(yùn)行單元,還用于在線(xiàn)程需要訪(fǎng)問(wèn)所述臨界資源 時(shí)對(duì)所述讀文件鎖進(jìn)行搶鎖,搶鎖成功的線(xiàn)程對(duì)所需訪(fǎng)問(wèn)的臨界資源進(jìn)行內(nèi)存拷貝,然后 釋放讀文件鎖,在釋放讀文件鎖后采用拷貝得到的臨界資源進(jìn)行相應(yīng)操作,其中,所述讀文 件鎖允許多個(gè)線(xiàn)程同時(shí)訪(fǎng)問(wèn)臨界資源。
[0029] 進(jìn)一步地所述文件鎖單元,還用于對(duì)多個(gè)線(xiàn)程均需要使用的臨界資源設(shè)置寫(xiě)文件 鎖;
[0030] 所述主線(xiàn)程運(yùn)行單元和服務(wù)線(xiàn)程運(yùn)行單元,還用于在線(xiàn)程需要寫(xiě)所述臨界資源時(shí) 對(duì)所述寫(xiě)文件鎖進(jìn)行搶鎖,搶鎖成功的線(xiàn)程對(duì)所述臨界資源進(jìn)行寫(xiě)操作,在搶鎖成功的線(xiàn) 程對(duì)所述臨界資源進(jìn)行寫(xiě)操作的過(guò)程中禁止其他線(xiàn)程使用所述臨界資源。
[0031] 進(jìn)一步地還包括線(xiàn)程控制單元,其中:
[0032] 所述線(xiàn)程控制單元,用于在所述網(wǎng)絡(luò)聊天室為語(yǔ)音聊天室,在新創(chuàng)建語(yǔ)音聊天房 間時(shí),計(jì)算每個(gè)服務(wù)線(xiàn)程的負(fù)荷,將新創(chuàng)建的語(yǔ)音聊天房間分配給負(fù)荷最小的服務(wù)線(xiàn)程,采 用負(fù)荷=發(fā)言用戶(hù)數(shù)量+旁聽(tīng)用戶(hù)數(shù)量/開(kāi)銷(xiāo)等效參數(shù),計(jì)算服務(wù)線(xiàn)程的負(fù)荷,其中,所述 發(fā)言用戶(hù)數(shù)量為服務(wù)線(xiàn)程所服務(wù)的全部聊天房間中的發(fā)言用戶(hù)的總數(shù)量,所述旁聽(tīng)用戶(hù)數(shù) 量為服務(wù)線(xiàn)程所服務(wù)的全部聊天房間中的旁聽(tīng)用戶(hù)的總數(shù)量,所述開(kāi)銷(xiāo)等效參數(shù)為旁聽(tīng)用 戶(hù)所占開(kāi)銷(xiāo)與發(fā)言用戶(hù)所占開(kāi)銷(xiāo)的等效值。
[0033] 綜上所述,本申請(qǐng)能夠減少服務(wù)器的開(kāi)銷(xiāo),充分利用服務(wù)器的CPU資源,使單臺(tái)服 務(wù)器能夠支撐更多的用戶(hù),最大程度的利用服務(wù)器的硬件資源,降低服務(wù)器的硬件成本。
【附圖說(shuō)明】
[0034] 圖1為本申請(qǐng)的實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的方法的流程圖;
[0035] 圖2為本申請(qǐng)的實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的服務(wù)器。
【具體實(shí)施方式】
[0036] 下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的 情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0037] 如圖1所示,本申請(qǐng)的實(shí)現(xiàn)網(wǎng)絡(luò)聊天室的方法,包括:
[0038] 步驟101 :創(chuàng)建多個(gè)線(xiàn)程,其中包括至少一個(gè)主線(xiàn)程和至少一個(gè)服務(wù)線(xiàn)程,服務(wù)線(xiàn) 程服務(wù)于網(wǎng)絡(luò)聊天室的多個(gè)聊天房間;
[0039] 本申請(qǐng)中創(chuàng)建的線(xiàn)程包括主線(xiàn)程和服務(wù)線(xiàn)程。
[0040] 主線(xiàn)程的數(shù)量為一個(gè)或多個(gè)
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1