我們有一個用例,我們有如下設置: 主類型的Actor和worker類型的Actor。akka patterns.ask實現細節
主站接收到輸入的工作請求並使用工作人員編排並生成結果。
有一個計劃來創建一個名爲client.java的Java類。這將創建一個新的主實例並將工作發送給它。此客戶端使用 - Patterns.ask來獲取將來的指針,並在其後得到結果,直到結果到達。
Patterns.ask(master, initialMessage, t);
Await.result to get the message
Patterns.ask的內部文件說將創建一個臨時actor。但是,當我調用並嘗試打印master中的發送者的hashCode時,每次都看起來是同一個actor。
我有以下的憂慮:
- 如何Patterns.ask的併發調用管理?它可以在調用後像線程一樣發生,請求獲取將來的指針,但將錯誤的數據放入其中?
- 它如何保證未來的指針只填充相關的響應而不與其他人的響應混淆?
對於例如:FutureX =未來預計X消息
FutureY =未來預計Y消息
FutureX能否獲得Y和FutureY獲得X?
對於這個問題的上下文,讓我們假設,我需要阻止。鑑於此,如何處理Patterns.ask的併發執行?如何問是在裏面實現的?這位演員被用來接收最終數據(作爲問答的結果),它的生活是什麼以及它是如何分享的?這個actor如何在正確的Future對象中填充正確的數據? –
這是否意味着使用Patterns.ask創建的actor將擁有所有響應,並可能保持它發送的期貨的hashmap以及響應並更新waiter \ –