專利名稱:用于防止死鎖狀態(tài)的數據處理方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種用于防止死鎖狀態(tài)的數據處理方法及系統(tǒng),尤其涉及這樣ー種用于防止死鎖狀態(tài)的數據處理方法及系統(tǒng),其中,角色(actor)系統(tǒng)對響應等待狀態(tài)中接收到的消息進行處理,從而防止死鎖狀態(tài)。
背景技術:
隨著多核中央處理器(CPU)技術的發(fā)展,對ー個芯片中設置多個中央處理器(CPU)內核的處理器的使用増加。作為維持多個CPU所處理數據一致性的方案,在操作系統(tǒng)(OS, operating system)層面提供利用多線程、鎖定(Lock)和類似方式實現(xiàn)臨界區(qū)域的保護功能。但是,只根據此方法來開發(fā)和維護龐大的系統(tǒng)就會產生許多困難和費用。此外,還有如下方法其中,為了并行執(zhí)行,分布式系統(tǒng)只使用消息在對象之間執(zhí) 行交互。但是,此方法因傳達消息的負擔(overhead)而降低性能,并可能在等待傳輸消息響應期間產生死鎖狀態(tài)。在現(xiàn)有技術中,在分布式系統(tǒng)或者多線程系統(tǒng)中用于并行計算的方法包括角色(actor)系統(tǒng)。角色系統(tǒng)被視為并行計算的基本元素。角色能夠接收并處理消息,自行計算并做出決定,創(chuàng)建其他的角色,或者向其他角色發(fā)送消息。在角色系統(tǒng)中,每個角色都具有其狀態(tài),即數據,還具有其自己的處理單元,用于處理數據,例如線程。每個角色在與其它角色異步交換消息時與其它角色發(fā)生交互。角色可以對接收到的消息執(zhí)行如下操作,包括1)變更自己的狀態(tài)(數據);2)向其他角色發(fā)送消息;3)創(chuàng)建新的角色;4)向其他主機移轉。角色系統(tǒng)可以使用同步消息。同步消息是ー種消息方案,其中,在接收到對于已經發(fā)送消息的響應之后,基于該響應處理后續(xù)的操作。同步消息廣泛地使用在服務器/客戶端系統(tǒng)中,包括分布式系統(tǒng)中。一般應用系統(tǒng)中所有的直接呼叫都可視為同步消息。如果這些同步消息都能夠被無限制地允許,則可能會產生死鎖狀態(tài),其中,兩個角色在相互請求對于他們自己的讀消息的響應時等待較長時間,從而不能執(zhí)行其他處理。在這種死鎖狀態(tài)下,可能會導致整體系統(tǒng)停止的嚴重問題。圖I為根據現(xiàn)有技術的角色系統(tǒng)中通過同步消息的收發(fā)進行數據處理的方法的信號流程圖。在步驟SlO中,第一角色10計算出用于處理數據的元素al,并請求用于處理消息的另ー個元素bl。在步驟S15中,第一角色10檢索第二角色20并生成第一讀消息,第一角色10將利用第一讀消息從第二角色20請求元素bl。由第一角色10生成的第一讀消息是同步消息,在接收到針對所發(fā)送消息的響應之后,基于所述響應處理后續(xù)步驟。在步驟S20中,第一角色10將第一讀消息發(fā)送給第二角色20。在步驟S25中,第一角色10設定對應于將第一讀消息發(fā)送給第二角色20的響應等待狀態(tài)(response standby state)。由于第一讀消息是同步消息,所以第一角色10可以在從第二角色20接收到第一讀消息的響應之后執(zhí)行后續(xù)步驟。由此,第一角色10在接收到向第二角色20發(fā)送的第一讀消息的響應之前,將第一角色10的狀態(tài)設定為響應等待狀態(tài)。在步驟S30中,第二角色20將從第一角色10接收到的第一讀消息儲存在消息隊列中。在步驟S35中,第二角色20為了獲取第一角色10的狀態(tài)信息而向第一角色10發(fā)
送第二讀消息。在此,第二讀消息與第一讀消息沒有關聯(lián)。在步驟S40中,第二角色20設定對應于將第二讀消息發(fā)送給第一角色10的響應等待狀態(tài)。第二角色20在從第一角色10接收到第二讀消息的響應后可執(zhí)行隨后步驟。由此,直到從對方接收到各自的響應為止,第一角色10及第ニ角色20均設定為等待狀態(tài),從而不能處理其他消息。因此,第一角色10不能將第二讀消息的響應發(fā)送給第二角色20,并且第二角色20也不能將第一讀消息的響應發(fā)送給第一角色10。最終,第一角色10及第ニ角色20為無限等待狀態(tài),因此在第一角色10和第二角色20之間產生死鎖狀態(tài)。如上所述,在根據現(xiàn)有技術的角色系統(tǒng)中具有如下問題由于同步讀消息發(fā)送之后出現(xiàn)的響應等待狀態(tài)而產生死鎖狀態(tài)。
發(fā)明內容
在本發(fā)明的一個實施例中,當角色之間收發(fā)同步消息時,可以對預定的消息進行處理,直至接收到讀消息的響應,從而防止死鎖狀態(tài),否則會由于角色長時間等待同步消息的響應而產生死鎖狀態(tài)。并且,在本發(fā)明的另ー個實施例,當角色存在于相同的存儲空間中時,角色可以通過直接呼叫方式讀取目標角色的狀態(tài)信息,從而提高數據處理速度及性能。作為實現(xiàn)上述目標的技術方案,根據在本發(fā)明的第一方面,提供一種用于防止死鎖狀態(tài)的數據處理方法,其包括以下步驟(a)發(fā)送讀消息,所述讀消息用于請求處理數據所需的目標角色的狀態(tài)信息;(b)到接收到上述讀消息的響應為止,只接收和處理讀取角色狀態(tài)信息的讀消息;以及(C)當接收到上述讀消息的響應時,利用上述狀態(tài)信息而處理相關數據。根據本發(fā)明的第一方面,所述方法還包括以下步驟(d)判斷是否需要狀態(tài)信息的目標角色存在于相同的存儲空間中;(e)當上述目標角色存在于相同的存儲空間中吋,從上述目標角色直接讀取上述狀態(tài)信息;以及(f)利用上述直接讀取的狀態(tài)信息處理相關數據。并且,根據本發(fā)明的第一方面,可以從消息隊列中接收上述(b)步驟中處理的讀消息,消息隊列可以儲存用于變更角色狀態(tài)的事件消息,或者讀消息。 根據本發(fā)明的第二方面,可提供一種用于防止死鎖狀態(tài)的數據處理系統(tǒng),其包括數據處理器,其利用目標角色的狀態(tài)信息來處理數據;讀消息生成器,其生成用于從所述目標角色請求目標角色狀態(tài)信息的讀消息;以及接收消息處理器,在接收到被發(fā)送至目標角色的讀消息的響應為止而接收到的消息中,其只處理讀取角色狀態(tài)信息的讀信息。根據實現(xiàn)上述發(fā)明目的的技術方案,可以發(fā)送作為同步消息的讀消息,并在接收到同步讀消息的響應之前,可處理從其他角色接收到的讀消息,因此,當正在等待同步讀消息的響應時,可以分發(fā)和處理從消息隊列或類似隊列接收到的讀消息,而不用將接收到的讀消息設定為等待狀態(tài),從而防止了死鎖狀態(tài)。
并且,根據用于實現(xiàn)發(fā)明目的所述本發(fā)明的技術方案,能夠判斷需要其狀態(tài)信息的目標角色是否位于相同的存儲空間中,如果該目標角色位于相同的存儲空間中,則經由直接呼叫方案獲取該目標角色的狀態(tài)信息,其中,所述狀態(tài)信息直接從目標角色獲得,而不是使用消息獲得狀態(tài)信息,從而提高了數據處理速度和性能。
圖I為根據現(xiàn)有技術的角色系統(tǒng)中通過同步消息的收發(fā)進行數據處理的方法的信號流程圖。圖2為根據本發(fā)明的一個實施例的數據處理方法的信號流程圖。圖3為根據本發(fā)明的一個實施例的數據處理方法的另ー個信號流程圖。圖4為根據本發(fā)明的一個實施例的數據處理方法中角色的消息處理的流程圖。圖5為根據本發(fā)明的一個實施例的數據處理系統(tǒng)的結構示意圖。圖6為根據本發(fā)明的一個實施例的數據處理系統(tǒng)的角色的結構示意圖。
具體實施例方式以下參照附圖對本發(fā)明的實施例進行詳細地說明,使得本發(fā)明所屬的技術領域中具有普遍知識的技術人員易于實施。但是,本發(fā)明能夠體現(xiàn)為各種不同的形態(tài),并不限于在此說明的實施例。并且,為了在圖中明確地說明本發(fā)明,省略了與說明無關的部分,并在整個說明書中,對相同的部件使用相同的附圖標號。在整個說明書中,當某部分被描述為“連接到”其他部件吋,它不僅可以“直接連接至IJ”其它部件,而且也可以經過中間部件“電氣連接到”其它部件。并且,除非明確地另有說明,否則當某部件被描述為“包括” 一些元件吋,它可以暗指包括任何其它元件而不是排除了其它元件。圖2及圖3為根據本發(fā)明的一個實施例的數據處理方法的信號流程圖。在步驟SlOO中,第一角色100計算出用于處理數據的元素al,并請求用于處理數據的另ー個元素bl。在此,bl是必須從除第一角色100之外的角色接收的元素,其中還包括角色的狀態(tài)信息。在步驟S105中,第一角色100生成第一讀消息,其用于向第二角色200請求bl。由第一角色100生成的第一讀消息是同步消息,利用該同步消息,在接收到被發(fā)送消息的響應之后,基于該響應的后續(xù)步驟能夠得以處理。同步消息方式是在包括分布式系統(tǒng)的服務器/客戶端系統(tǒng)中廣泛使用的方式,一般應用系統(tǒng)中的所有直接呼叫均可視為同步消息。在步驟SllO中,第一角色100將第一讀消息發(fā)送給第二角色200。第一讀消息可以被消息處理器從第一角色100發(fā)送到第二角色200。
消息處理器從消息隊列中獲取消息,將消息發(fā)送給相應的角色,并執(zhí)行消息的內容。通常,消息處理器可以是操作系統(tǒng)(OS)提供的線程,并且存在于各個角色中。線程可以由一個主機內不同中央處理單元(CPU)的每個內核進行處理,并分布到不同的主機。在根據本發(fā)明的一個實施例的說明中,為了方便理解,假設各個角色包括一個獨立的消息處理器。在步驟SI 15中,第二角色200將從第一角色100接收到的第一讀消息儲存在消息隊列中。消息隊列是等待執(zhí)行的消息的隊列。一臺主機可以有單個消息隊列,或者各個角色也可以具有消息隊列。根據本發(fā)明的一個實施例的說明中,為了方便理解,假設各個角色包括有消息隊列。在步驟S120中,第二角色200向第一角色100發(fā)送第二讀消息。 在步驟S125中,第一角色100處理從第二角色200接收到的第二讀消息。在本發(fā)明的一個實施例中,第一角色100與現(xiàn)有技術不同,即使向第二角色200發(fā)送讀消息,也不會設定為響應等待狀態(tài)。由此,即使第一角色100不從第二角色200中接收第I讀消息的響應,也能夠處理第2讀(read)消息。在步驟S130中,第一角色100將第二讀消息的響應發(fā)送給第二角色200,上述第二讀消息的響應包括步驟S125中的處理結果。在步驟S135中,第二角色200或者第三角色200向第一角色100發(fā)送第3讀消息。在步驟S140中,第一角色100處理從第二角色200或者第三角色200接收到的第二讀消息。在步驟S145中,第一角色100將第三讀消息的響應發(fā)送給第二角色200或者第三角色200,上述第三讀消息的響應包括步驟S140中的處理結果。如此,在本發(fā)明的一個實施例中,即使第一角色100將第一讀消息發(fā)送給第二角色200之后,也不會被設定為響應等待狀態(tài),因此能夠處理從一個以上的其他角色中接收到的讀消息并發(fā)送響應。在步驟S150中,第二角色200分析第一讀消息,從而計算出從第一角色100請求的第二角色200的狀態(tài)信息的元素bl。在步驟S155中,第二角色200將第一讀消息的響應發(fā)送給第一角色100。第二角色200發(fā)送的第一讀消息的響應包括有在步驟S150中計算出的第二角色200的狀態(tài)信息bl。在步驟S160中,第一角色100利用元素al及元素bl從而處理數據,上述元素al是在步驟SlOO中計算出的,上述元素bl包括在從第二角色200中接收到的第一讀消息的響應中。圖4為根據本發(fā)明的一個實施例的數據處理方法中角色的消息處理隊列的流程圖。在步驟S200中,其他角色能夠感知對目標角色的狀態(tài)信息進行請求的狀況的產生。即,在執(zhí)行處理數據的過程中,為了處理數據,角色能夠感知對其他角色的狀態(tài)信息所進行的請求。在步驟S210中,判斷作為被請求狀態(tài)信息的目標的目標角色是否存在于相同的存儲空間中。在步驟S220中,當在步驟S210中確定目標角色不存在于相同的存儲空間中時,生成讀消息,利用該讀消息能夠讀取目標角色的狀態(tài)信息以便進行數據處理,并且將生成的讀消息發(fā)送給目標角色。 由角色生成并收發(fā)的消息包括事件消息或者讀消息。事件消息是能夠對接收的角色狀態(tài)進行變更的異步消息,而讀消息是只對接收的角色狀態(tài)進行讀取的同步消息。由此,為了讀取目標角色的狀態(tài)信息,生成讀消息并將其發(fā)送給目標角色。
讀消息可以由消息處理器來發(fā)送。操作系統(tǒng)(OS)提供的線程可以用作消息處理器。在步驟S230中,判斷是否已經接收到在步驟S220中發(fā)送的讀消息的響應。讀消息是確認響應后執(zhí)行隨后步驟的同步消息。由此,通過判斷是否已經接收到被發(fā)送讀消息的響應,可以判斷在接收到該響應之后是否執(zhí)行隨后步驟。在步驟S240中,當在步驟S230中確定未接收到響應時,從消息隊列中分發(fā)儲存在消息隊列中的讀消息。當由角色接收到的消息不能立即由角色處理時,消息隊列儲存接收到的消息,并且將接收到的消息設定為等待狀態(tài),直至接收到的消息被角色處理。而且角色能夠立即處理接收到的消息時,角色必須將接收到的消息設定為等待狀態(tài),從而根據情況執(zhí)行不同的處理。在這種情況下,通過將接收到的消息儲存在消息隊列中,角色可以將接收到的消息設定為等待狀態(tài),然后,通過在能夠處理消息的時間點上將其從消息隊列分發(fā),對消息進行處理。在步驟S250中,分析并處理在步驟S240中進行分發(fā)的讀消息。即,分析讀消息,并基于分析后的讀消息執(zhí)行處理,從而將響應發(fā)送給相應的角色。如此,與現(xiàn)有技術不同,在根據本發(fā)明的一個實施例中,在發(fā)送讀消息到接收到響應的響應等待時間,角色能夠處理從其它角色接收到的讀消息。在這種情況下,如果在基于對所發(fā)送讀消息的響應而執(zhí)行數據處理之前由于另一個消息的處理而改變了角色的狀態(tài),則發(fā)送讀消息時的角色狀態(tài)和接收響應時角色的狀態(tài)可能是不同的。因此,當基于所發(fā)送的讀消息進行數據處理時,可能會產生問題。如上所述,雖然消息隊列中不僅可以包括作為同步消息的讀消息,而且也包括作為異步消息的事件消息,但是在等待被發(fā)送讀消息的響應的期間,可處理的消息僅限于不對角色的狀態(tài)進行變更的同步的讀消息。在步驟260中,判斷是否已經接收到步驟S220中發(fā)送的讀消息的響應。在步驟S270中,當已經接收到從步驟S220中發(fā)送的讀消息的響應時,使用包括在接收到的響應中的目標角色的狀態(tài)信息,進行處理數據。在階段S280中,當在步驟S210中確定目標角色存在于相同的存儲空間中時,通過直接呼叫方式讀取目標角色的狀態(tài)信息。在步驟S290中,使用在步驟S280中讀取的狀態(tài)信息,處理相關數據。這種通過直接呼叫方式讀取目標角色狀態(tài)信息的方法與使用在發(fā)送消息后必須等待響應的同步消息的方法相比,能夠提高數據處理速度并改善系統(tǒng)的性能。
圖5為根據本發(fā)明的一個實施例的數據處理系統(tǒng)的結構示意圖。如上所述,在本發(fā)明的一個實施例中,角色100及200分別包括消息處理器101、201以及消息列隊102、202。如果第一角色100為了處理數據而確定需要第二角色200的狀態(tài)信息,則生成用于讀取第二角色200狀態(tài)信息的第一讀消息,并將生成的第一讀消息發(fā)送給第二角色200。第一角色100從第二角色200或者除此之外的其他角色中接收讀消息及事件消息,并且,當不能及時處理接收到的消息時,通過消息處理器101在消息隊列102中儲存接收到的消息。
第一角色100使用消息處理器101對儲存在消息列102中的消息進行分發(fā),并根據消息的種類及內容執(zhí)行步驟。例如,當對讀消息進行分發(fā)時,第一角色100生成包括有讀消息請求的第一角色的狀態(tài)信息的響應,并向發(fā)送讀消息的角色發(fā)送所生成的響應。當對事件消息進行分發(fā)時,第一角色100基于包括在事件消息中的消息來改變第一角色100的狀態(tài)。通過從第二角色200接收第一讀消息的響應,第一角色100獲取第二角色200的狀態(tài)信息,并利用接收到的狀態(tài)信息對數據進行處理。在根據前面所述本發(fā)明實施例的數據處理系統(tǒng)中,即使在未接收到發(fā)送至目標角色的讀消息的響應時,也能夠處理接收到的讀消息,因此能夠防止因延遲了對讀消息的處理而產生的死鎖狀態(tài)。圖6為根據本發(fā)明的一個實施例的數據處理系統(tǒng)的角色的結構示意圖。根據本發(fā)明的一個實施例的角色100包括信號收發(fā)器110、數據處理器120、讀消息生成器130以及接收消息處理器140。信號收發(fā)器110向其他角色發(fā)送消息等信號,并接收信號。也就是說,信號收發(fā)器110接收例如讀消息或事件消息的消息,并向相應的角色發(fā)送信號,所述信號包括所接收到的讀消息的響應。另外,信號收發(fā)器110將讀消息發(fā)送至目標角色,并且接收該讀消息的響應。當需要目標角色的狀態(tài)信息以便進行數據處理時,數據處理器120判斷相應的角色是否存在于與角色100相同的存儲空間中。當相應的角色不存在于相同的存儲空間中時,數據處理器120請求讀消息生成器130生成讀消息,所述讀消息將被發(fā)送給相應的角色。如果從讀消息生成器130接收到已將讀消息發(fā)送給相應角色的發(fā)送情況,則數據處理器120請求接收消息處理器140僅讀取消息而停止處理事件消息,直至從相應的角色接收到響應。如上所述,如果在接收到所發(fā)送的讀消息的響應并且基于該響應執(zhí)行數據處理之前通過處理另一個消息而改變了角色的狀態(tài),則在基于對所發(fā)送讀消息的響應而進行的數據處理中可能會出現(xiàn)問題。由此,數據處理器120請求接收消息處理器140只處理不對角色狀態(tài)進行變更的讀消息。當確定相應的角色存在于與角色100相同的存儲空間中時,數據處理器120通過直接呼叫方式(direct-calls cheme)執(zhí)行對相應的角色的狀態(tài)信息的讀取。數據處理器120從相應的角色接收所發(fā)送的讀消息的響應,并利用包括在接收到的響應中的狀態(tài)信息來執(zhí)行對數據的處理。讀消息生成器130響應于數據處理器120的請求,生成將被發(fā)送的讀消息。當利用將要接收上述讀消息的角色的信息生成讀消息時,所述信息即包括在來自數據處理器120的請求中的角色信息,讀消息生成器130通過信號收發(fā)器110發(fā)送讀消息,并將發(fā)送情況通報給數據處理器120。接收消息處理器140通過分發(fā)消息對儲存在消息隊列102中的消息進行處理。當數據處理器120的請求存在時,接收消息處理器140停止對事件消息的處理,而通過分發(fā)消息僅對讀消息進行處理。也就是說,直到接收到角色100發(fā)送給目標角色的讀消息的響應為止,接收消息處理器140僅處理讀消息。
如此,在接收到發(fā)送給目標角色的讀消息的響應之前,接收消息處理器140可以處理接收到的讀消息,從而能夠防止在消息隊列102中消息過度等待的情況。以上所述的本發(fā)明的一個實施例,不僅適用于由多個主機(host)分布設置的環(huán)境,而且還適用于一個主機,特別是一個主機內提供一個以上中央處理器(CPU)內核,即所謂的多核環(huán)境。也就是說,本發(fā)明不僅適用于角色存在于各個獨立主機內的情況,而且還適用于角色存在于相同的主機內的情況。本發(fā)明的一個實施例可以體現(xiàn)為記錄媒介的形式,其中記錄有計算機可執(zhí)行指令,例如由計算機執(zhí)行的程序模塊。計算機可執(zhí)行記錄媒介可以是任何能夠由計算機存取的介質,包括易失性及非易失性媒介、分離型及非分離型媒介。并且,計算機可讀媒介可包括所有的計算機存儲媒介及通信媒介。計算機存儲媒介包括所有的易失性及非易失性媒介、分離型及非分離型媒介,上述易失性及非易失性媒介、分離型及非分離型媒介體現(xiàn)為用于存儲諸如計算機可讀指令、數據結構、程序模塊或者其他數據的消息的任意的方法或者技術。典型地,通信媒介包括計算機可讀指令、數據結構、程序模塊、或者諸如載波的已調制的數據信號的其他數據、或者其他發(fā)送機制,并包括任意的消息傳達媒介。本發(fā)明的方法及系統(tǒng)關于特定實施例進行說明,但是其構成元素或者操作的一部分或者全部能夠體現(xiàn)為使用具有普遍利用的硬件總體結構的計算機系統(tǒng)。以上所述的本發(fā)明的說明是用于舉例,本發(fā)明所屬的技術領域的具有普遍知識的技術人員應該理解成,即使不對本發(fā)明的技術性思想或者必要性特征進行變更,也可容易變形為其他具體的形態(tài)。因此,在以上所述的實施例在所有方面都是舉例的并不限于此。例如,說明成單一型的各構成元素可分開地實施,相同地,說明成分散式的構成元素可實施為結合的形態(tài)。本發(fā)明的范圍不是根據上述說明而是根據權利要求書來限定,并且從權利要求的意義及范圍及其等同概念提出的所有變更或者變形的形態(tài)應包括在本發(fā)明的范圍內。
權利要求
1.一種用于防止死鎖狀態(tài)的數據處理方法,包括以下步驟 (a)發(fā)送讀消息,所述讀消息用于請求所述數據處理所需的目標角色的狀態(tài)信息; (b)直到接收到所述讀消息的響應為止,只接收和處理被讀取角色狀態(tài)信息的讀消息;以及 (c)當接收到所述讀消息的響應時,利用所述目標角色的狀態(tài)信息對相關數據進行處理。
2.根據權利要求I所述的數據處理方法,還包括以下步驟 (d)判斷所述目標角色是否位于相同的存儲空間中; (e)如果所述目標角色存在于相同的存儲空間中,則直接從所述目標角色讀取狀態(tài)信息;以及 (f)利用所述直接讀取的狀態(tài)信息來處理相關數據。
3.根據權利要求I所述的數據處理方法,其特征在于,從信息隊列中接收步驟(b)中處理的讀消息,所述信息隊列存儲事件消息或讀消息,所述事件消息能夠用于改變角色狀態(tài)。
4.根據權利要求I所述的數據處理方法,其特征在于,步驟(b)中處理的所述讀消息直接從所述角色接收。
5.根據權利要求I所述的數據處理方法,其特征在于,通過操作系統(tǒng)的線程來執(zhí)行對所述讀消息的發(fā)送及接收。
6.根據權利要求I所述的數據處理方法,其特征在于,所述目標角色存在于單獨的主機中。
7.根據權利要求I所述的數據處理方法,其特征在于,所述目標角色存在于相同的主機中。
8.一種用于防止死鎖狀態(tài)的數據處理系統(tǒng),其包括 數據處理器,其利用目標角色的狀態(tài)信息進行數據處理; 讀消息生成器,其生成向所述目標角色請求狀態(tài)信息的讀消息;以及接收信息處理器,直至接收到發(fā)送給所述目標角色的讀消息的響應為止,所述接收信息處理器在接收到的消息中僅對用于讀取角色狀態(tài)信息的讀消息進行處理。
9.根據權利要求8所述的數據處理系統(tǒng),其特征在于,所述數據處理器通過直接呼叫方式對存在于相同存儲空間中的目標角色的狀態(tài)信息進行讀取,從而進行數據處理。
10.根據權利要求8所述的數據處理系統(tǒng),其特征在于,從角色直接接收由所述接收消息處理器接收到的讀消息。
11.根據權利要求8所述的數據處理系統(tǒng),其特征在于,從信息隊列接收由所述接收信息處理器接收到的讀消息,所述信息隊列存儲有事件消息和讀消息,所述事件消息用于改變角色狀態(tài)。
全文摘要
本發(fā)明提供一種用于防止死鎖狀態(tài)的數據處理方法及系統(tǒng),尤其提供如下數據處理方法及系統(tǒng)在角色系統(tǒng)中處理從消息響應等待狀態(tài)中接收到的信息,從而防止死鎖狀態(tài)。一種用于防止死鎖狀態(tài)的數據處理方法,其包括(a)發(fā)送讀消息,所述讀消息用于請求所述數據處理所需的目標角色的狀態(tài)信息;(b)直到接收到所述讀消息的響應為止,只接收和處理被讀取角色狀態(tài)信息的讀消息;以及(c)當接收到所述讀消息的響應時,利用所述目標角色的狀態(tài)信息對相關數據進行處理。
文檔編號G06F9/38GK102630315SQ201080049494
公開日2012年8月8日 申請日期2010年10月29日 優(yōu)先權日2009年10月30日
發(fā)明者金尚均, 金昌漢 申請人:(株)吉諾