国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      多進(jìn)程交互方法、系統(tǒng)和服務(wù)器的制造方法

      文檔序號(hào):9810380閱讀:515來源:國知局
      多進(jìn)程交互方法、系統(tǒng)和服務(wù)器的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計(jì)算機(jī)同時(shí)完成多方數(shù)據(jù)處理的任務(wù)的技術(shù)領(lǐng)域,特別涉及一種利用計(jì)算機(jī)的核數(shù)來提升服務(wù)器與客戶端之間的數(shù)據(jù)交互效率及優(yōu)化計(jì)算機(jī)的處理效率的多進(jìn)程交互方法、系統(tǒng)和服務(wù)器。
      【背景技術(shù)】
      [0002]現(xiàn)有技術(shù)中,計(jì)算機(jī)同步完成多項(xiàng)任務(wù)主要依靠于多線程技術(shù),也即,從軟件或者硬件上實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行的技術(shù)。因此,為了能夠在同一時(shí)間內(nèi)完成多項(xiàng)任務(wù),在多人在線戰(zhàn)術(shù)競技游戲或其它多人對(duì)戰(zhàn)模式游戲中,也應(yīng)用到了多線程技術(shù),以實(shí)現(xiàn)游戲服務(wù)器對(duì)多個(gè)玩家客戶端發(fā)送的多項(xiàng)任務(wù)進(jìn)行及時(shí)地處理,并能夠?qū)⑻幚斫Y(jié)果同時(shí)返回至玩家客戶端。
      [0003]同時(shí),為了滿足大量的玩家的需求,游戲服務(wù)器一般采用多線程塊模型的方式對(duì)大量玩家發(fā)送的任務(wù)進(jìn)行處理。但是,多線程塊模型在每個(gè)進(jìn)程里只有一個(gè)塊而不是多個(gè)塊,這單個(gè)塊(可理解為單進(jìn)程)控制著多個(gè)線程而不是單個(gè)線程;在這里不需要消息隊(duì)列,因?yàn)樗械木€程都是相同的塊的一部分,導(dǎo)致程序員必須提供線程同步以保證線程不會(huì)并發(fā)請(qǐng)求相同的資源,以避免競爭情況的發(fā)生。為解決該問題,通過提供一鎖機(jī)制即可;但是,鎖機(jī)制的存在可能會(huì)導(dǎo)致系統(tǒng)發(fā)生死鎖現(xiàn)象,且由于游戲服務(wù)器要求的邏輯時(shí)序性很強(qiáng),使用多線程處理的方式還會(huì)導(dǎo)致邏輯處理的復(fù)雜度增大。
      [0004]并且,通過一個(gè)進(jìn)程處理多人戰(zhàn)斗模式的戰(zhàn)斗邏輯,如處理多人在線戰(zhàn)術(shù)競技游戲的戰(zhàn)斗邏輯時(shí),則這個(gè)進(jìn)程不僅要完成玩家戰(zhàn)斗邏輯的處理,而且還要完成玩家數(shù)據(jù)存儲(chǔ)的任務(wù)及日志任務(wù),從而導(dǎo)致在必須保證玩家戰(zhàn)斗體驗(yàn)感受良好的情況下,游戲服務(wù)器只能支撐200個(gè)玩家的戰(zhàn)斗邏輯數(shù)據(jù)處理,不能滿足對(duì)更多玩家的支持,限制了在線玩家人數(shù),不能滿足更多玩家的需要。

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

      [0005]本發(fā)明的目的是為了解決上述現(xiàn)有技術(shù)的缺點(diǎn)和不足,提供一種多進(jìn)程交互方法、系統(tǒng)和服務(wù)器,不需要應(yīng)用鎖機(jī)制即可避免競爭情況的發(fā)生,實(shí)現(xiàn)在滿足游戲服務(wù)器的要求的同時(shí)大大降低邏輯處理的復(fù)雜度,從而有效地提高游戲服務(wù)器的處理能力,并擴(kuò)大游戲服務(wù)器能夠支撐的游戲玩家的數(shù)量,提升最大同時(shí)在線人數(shù)。
      [0006]—種多進(jìn)程交互方法,包括以下步驟:
      [0007]服務(wù)器啟動(dòng)一分配進(jìn)程和多個(gè)任務(wù)進(jìn)程;
      [0008]分配進(jìn)程接收由多個(gè)客戶端分別發(fā)送的單個(gè)需求信息,并生成對(duì)應(yīng)的任務(wù)分發(fā)至多個(gè)任務(wù)進(jìn)程;
      [0009]多個(gè)任務(wù)進(jìn)程分別完成由分配進(jìn)程分發(fā)的任務(wù),并生成相應(yīng)的任務(wù)結(jié)果返回至分配進(jìn)程;
      [0010]分配進(jìn)程將接收到的多個(gè)任務(wù)結(jié)果分別反饋至與其對(duì)應(yīng)的客戶端。
      [0011]由上述技術(shù)方案可知,本發(fā)明通過利用服務(wù)器的CPU的多核性能,實(shí)現(xiàn)多個(gè)進(jìn)程的同時(shí)運(yùn)行,也即由分配進(jìn)程分配任務(wù),由多個(gè)任務(wù)進(jìn)程同時(shí)工作并獨(dú)立完成任務(wù),從而不僅大大提高了任務(wù)處理的效率和保證了各個(gè)任務(wù)進(jìn)程工作的獨(dú)立性,而且擴(kuò)大客戶端的數(shù)量,不需要應(yīng)用鎖機(jī)制,從而避免了需求信息競爭情況的發(fā)生。將本發(fā)明的多進(jìn)程交互方法應(yīng)用于游戲服務(wù)器時(shí),能夠?qū)崿F(xiàn)在滿足游戲服務(wù)器的要求的同時(shí)大大降低邏輯處理的復(fù)雜度,從而有效地提高游戲服務(wù)器的處理能力,并擴(kuò)大游戲服務(wù)器能夠支撐的游戲玩家的數(shù)量,提升最大同時(shí)在線人數(shù)。
      [0012]進(jìn)一步,所述服務(wù)器中處理器的核數(shù)為N個(gè),N為整數(shù)且其大于I;及步驟服務(wù)器啟動(dòng)一分配進(jìn)程和多個(gè)任務(wù)進(jìn)程中,服務(wù)器啟動(dòng)的多個(gè)任務(wù)進(jìn)程的數(shù)量為N-1個(gè)。通過此處設(shè)置,最大限定地利用了服務(wù)器的CPU多核配置性能,使得服務(wù)器中運(yùn)行的進(jìn)程總數(shù)與CPU的核數(shù)相同,從而進(jìn)一步提高了服務(wù)器的任務(wù)完成效率,并擴(kuò)大了用戶在線人數(shù),增強(qiáng)用戶體驗(yàn)。
      [0013]進(jìn)一步,所述步驟分配進(jìn)程接收由多個(gè)客戶端分別發(fā)送的單個(gè)需求信息,并生成對(duì)應(yīng)的任務(wù)分發(fā)至多個(gè)任務(wù)進(jìn)程,具體包括以下步驟:
      [0014]分配進(jìn)程接收由多個(gè)客戶端分別發(fā)送的單個(gè)需求信息,并根據(jù)接收到需求信息的先后順序依次生成分別對(duì)應(yīng)于多個(gè)需求信息的多個(gè)任務(wù),同時(shí)依次建立每個(gè)客戶端分別和與其對(duì)應(yīng)的任務(wù)之間的關(guān)聯(lián)關(guān)系;
      [0015]分配進(jìn)程判斷所有任務(wù)進(jìn)程的工作狀態(tài),若判斷得到所有任務(wù)進(jìn)程的工作狀態(tài)均為忙碌狀態(tài),則分配進(jìn)程不分發(fā)任務(wù)至所有任務(wù)進(jìn)程,并控制所有任務(wù)按先后順序進(jìn)入排隊(duì)等候狀態(tài);若判斷得到存在工作狀態(tài)為空閑狀態(tài)的任務(wù)進(jìn)程,則分配進(jìn)程按先后順序?qū)⑷蝿?wù)分發(fā)至處于空閑狀態(tài)的任務(wù)進(jìn)程中,并控制未分發(fā)的任務(wù)繼續(xù)排隊(duì)等候。
      [0016]通過上述分配進(jìn)程對(duì)接收到的所有需求信息的處理,保證了與需求信息對(duì)應(yīng)的任務(wù)能正常地按先后順序?qū)崿F(xiàn)分發(fā)并由任務(wù)進(jìn)程完成,進(jìn)一步保證了所有任務(wù)的有序且及時(shí)的處理,從而進(jìn)一步保證了用戶的體驗(yàn)。
      [0017]進(jìn)一步,所述步驟多個(gè)任務(wù)進(jìn)程分別完成由分配進(jìn)程分發(fā)的任務(wù),并生成相應(yīng)的任務(wù)結(jié)果返回至分配進(jìn)程,具體包括以下步驟:
      [0018]多個(gè)任務(wù)進(jìn)程接收由分配進(jìn)程分發(fā)的任務(wù)后,均分別預(yù)算任務(wù)處理復(fù)雜度,并將任務(wù)處理復(fù)雜度發(fā)送至分配進(jìn)程;
      [0019]完成任務(wù)處理復(fù)雜度的發(fā)送后,所述多個(gè)任務(wù)進(jìn)程分別獨(dú)立完成由分配進(jìn)程分發(fā)的任務(wù),并生成相應(yīng)的任務(wù)結(jié)果返回至分配進(jìn)程。
      [0020]通過任務(wù)進(jìn)程對(duì)接收到的任務(wù)預(yù)算任務(wù)處理復(fù)雜度,并發(fā)送至分配進(jìn)程,有利于分配進(jìn)程及時(shí)了解各個(gè)任務(wù)進(jìn)程的任務(wù)的難度,由此方便了分配進(jìn)程根據(jù)各個(gè)任務(wù)進(jìn)程的任務(wù)處理復(fù)雜度實(shí)現(xiàn)任務(wù)的合理調(diào)度。
      [0021]進(jìn)一步,所述步驟分配進(jìn)程將接收到的多個(gè)任務(wù)結(jié)果分別反饋至與其對(duì)應(yīng)的客戶端中,分配進(jìn)程在接收到多個(gè)任務(wù)結(jié)果后,還分別刪除返回多個(gè)任務(wù)結(jié)果的多個(gè)任務(wù)進(jìn)程在完成任務(wù)前發(fā)送的任務(wù)處理復(fù)雜度;并按先后順序?qū)⑴抨?duì)等候中的任務(wù)分發(fā)至空閑狀態(tài)的任務(wù)進(jìn)程。
      [0022]通過分配進(jìn)程在接收到任務(wù)結(jié)果的同時(shí)刪除相應(yīng)的任務(wù)處理復(fù)雜度,避免了已經(jīng)無存在意義的任務(wù)處理復(fù)雜度對(duì)分配進(jìn)程的空間的占據(jù),從而避免了冗余數(shù)據(jù)在分配進(jìn)程的殘留,保證了分配進(jìn)程的處理速度。
      [0023]進(jìn)一步,當(dāng)所述服務(wù)器的分配進(jìn)程存在未分發(fā)的任務(wù)時(shí),所述分配進(jìn)程可通過所述服務(wù)器與另一臺(tái)或多臺(tái)服務(wù)器進(jìn)行通信,將未分發(fā)的任務(wù)分發(fā)至由所述另一臺(tái)或多臺(tái)服務(wù)器啟動(dòng)的多個(gè)擴(kuò)展進(jìn)程,由所述多個(gè)擴(kuò)展進(jìn)程完成任務(wù)并將任務(wù)結(jié)果返回至所述分配進(jìn)程。此處設(shè)置有利于解決當(dāng)一臺(tái)服務(wù)器不能解決過多需求時(shí),可通過擴(kuò)展多臺(tái)服務(wù)器實(shí)現(xiàn)需求的及時(shí)處理,從而解決一臺(tái)服務(wù)器的性能限制的問題,并有利于進(jìn)一步提高了處理效率和擴(kuò)大在線用戶人數(shù),能夠更好地滿足用戶需求。
      [0024]進(jìn)一步,所述分配進(jìn)程和多個(gè)任務(wù)進(jìn)程之間通過socket進(jìn)行通信,且所述分配進(jìn)程和多個(gè)擴(kuò)展進(jìn)程之間通過socket進(jìn)行通信。通過分配進(jìn)程與任務(wù)進(jìn)程由socket實(shí)現(xiàn)通信,并通過分配進(jìn)程和擴(kuò)展進(jìn)程由socket實(shí)現(xiàn)通信,使得多臺(tái)服務(wù)器之間的聯(lián)合協(xié)助具有良好的擴(kuò)展性,從而使得進(jìn)程可以方便地?cái)U(kuò)展到多臺(tái)服務(wù)器上交互。
      [0025]另外,為實(shí)現(xiàn)服務(wù)器對(duì)單個(gè)客戶端發(fā)送的多個(gè)需求信息的快速處理,在基于上述多進(jìn)程交互方法的構(gòu)思下,本發(fā)明還提供了第二種多進(jìn)程交互方法,其包括以下步驟:
      [0026]服務(wù)器啟動(dòng)一分配進(jìn)程和多個(gè)任務(wù)進(jìn)程;
      [0027]分配進(jìn)程接收由單個(gè)客戶端發(fā)送的多個(gè)需求信息,并生成對(duì)應(yīng)的任務(wù)分發(fā)至多個(gè)任務(wù)進(jìn)程;
      [0028]多個(gè)任務(wù)進(jìn)程分別完成由分配進(jìn)程分發(fā)的任務(wù),并生成相應(yīng)的任務(wù)結(jié)果返回至分配進(jìn)程;
      [0029]分配進(jìn)程將接收到的多個(gè)任務(wù)結(jié)果反饋至客戶端。
      [0030]進(jìn)一步,所述服務(wù)器中處理器的核數(shù)為N個(gè),N為整數(shù)且其大于I;及步驟服務(wù)器啟動(dòng)一分配進(jìn)程和多個(gè)任務(wù)進(jìn)程中,服務(wù)器啟動(dòng)的多個(gè)任務(wù)進(jìn)程的數(shù)量為N-1個(gè);且所述分配進(jìn)程和多個(gè)任務(wù)進(jìn)程之間通過socket進(jìn)行通信。
      [0031]進(jìn)一步,所述步驟分配進(jìn)程接收由單個(gè)客戶端發(fā)送的多個(gè)需求信息,并生成對(duì)應(yīng)的任務(wù)分發(fā)至多個(gè)任務(wù)進(jìn)程,具體包括以下步驟:
      [0032]分配進(jìn)程接收由單個(gè)客戶端發(fā)送的多個(gè)需求信息,并根據(jù)接收到多個(gè)需求信息的先后順序依次生成分別對(duì)應(yīng)于多個(gè)需求信息的多個(gè)任務(wù);
      [0033]分配進(jìn)程判斷所有任務(wù)進(jìn)程的工作狀態(tài),若判斷得到所有任務(wù)進(jìn)程的工作狀態(tài)均為忙碌狀態(tài),則分配進(jìn)程不分發(fā)任務(wù)至所有任務(wù)進(jìn)程,并控制所有任務(wù)按先后順序進(jìn)入排隊(duì)等候狀態(tài);若判斷得到存在工作狀態(tài)為空閑狀態(tài)的任務(wù)進(jìn)程,則分配進(jìn)程按先后順序?qū)⑷蝿?wù)分發(fā)至處于空閑狀態(tài)的任務(wù)進(jìn)程中,并控制未分發(fā)的任務(wù)繼續(xù)排隊(duì)等候;
      [0034]及所述步驟多個(gè)任務(wù)進(jìn)程分別完成由分配進(jìn)程分發(fā)的任務(wù),并生成相應(yīng)的任務(wù)結(jié)果返回至分配進(jìn)程,具體包括以下步驟:
      [0035]多個(gè)任務(wù)進(jìn)程接收由分配進(jìn)程分發(fā)的任務(wù)后,均分別預(yù)算任務(wù)處理復(fù)雜度,并將任務(wù)處理復(fù)雜度發(fā)送至分配進(jìn)程;
      [0036]完成任務(wù)處理復(fù)雜度的發(fā)送后,所述多個(gè)任務(wù)進(jìn)程分別獨(dú)立完成由分配進(jìn)程分發(fā)的任務(wù),并生成相應(yīng)的任務(wù)結(jié)果返回至分配進(jìn)程;
      [0037]以及所述步驟分配進(jìn)程將接收到的多個(gè)任務(wù)結(jié)果反饋至客戶端中,分配進(jìn)程在接收到多個(gè)任務(wù)結(jié)果后,還分別刪除返回多個(gè)任務(wù)結(jié)果的多個(gè)任務(wù)進(jìn)程在完成任務(wù)前發(fā)送的任務(wù)處理復(fù)雜度;并按先后順序?qū)⑴抨?duì)等候中的任務(wù)分發(fā)至空閑狀態(tài)的任務(wù)進(jìn)程。
      [0038]進(jìn)一步,
      當(dāng)前第1頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1