45
A
答えて
86
は臆面もなく[すごい]official doc(多くのためのメッセージにセクションを送る見て)コピー:
メッセージは次のいずれかの方法で俳優に送信されます。
!
は、「火と忘れ」を意味します。メッセージを非同期で送信し、 がすぐに戻ります。tell
とも呼ばれます。
?
は、メッセージ を非同期的に送信し、可能な応答を表すFuture
を返します。 別名:ask
。
17
受信者の視点からは、tell
とask
のメッセージが同じように見えます。しかし、tell
を受け取った場合、sender
という値はメッセージを送信した俳優の参照になりますが、ask
では尋ねた俳優で作成されたFuture
に返信されるようにsender
が設定されます。
ask
には、受け取った応答が間違いなくあなたが求めたメッセージの結果であったことが分かりやすいという利点がありますが、Tellの場合は一意のIDを使用して同様の結果を得る必要があります。ただし、ask
の場合は、timeout
を設定する必要があります。応答がない場合はFuture
が失敗します。
以下のコードでは、tell
とask
で同じ効果が得られます。
import akka.actor.{Props, Actor}
import scala.concurrent.duration._
import akka.pattern.ask
class TellActor extends Actor {
val recipient = context.actorOf(Props[ReceiveActor])
def receive = {
case "Start" =>
recipient ! "Hello" // equivalent to recipient.tell("hello", self)
case reply => println(reply)
}
}
class AskActor extends Actor {
val recipient = context.actorOf(Props[ReceiveActor])
def receive = {
case "Start" =>
implicit val timeout = 3 seconds
val replyF = recipient ? "Hello" // equivalent to recipient.ask("Hello")
replyF.onSuccess{
case reply => println(reply)
}
}
}
class ReceiveActor extends Actor {
def receive = {
case "Hello" => sender ! "And Hello to you!"
}
}
関連する問題
- 1. スウィフトタイプ推論には疑問符や感嘆符が必要
- 2. 感嘆符= 0
- 3. 感嘆符
- 4. 疑問符と感嘆符の前にスペースを追加してください
- 5. facebookの感嘆符
- 6. dllの感嘆符の問題?
- 7. プロジェクト名の感嘆符
- 8. Swiftアイコンバッジ番号感嘆符
- 9. java eclipse赤い感嘆符
- 10. regex match感嘆符java
- 11. スカラーのargとしての感嘆符(!)
- 12. JavaScriptのピリオド、疑問符、感嘆符の後の最初の文字を大文字にする方法は?
- 13. 文字、数字、スペース、感嘆符、疑問符以外の文字列をすべて削除するには?
- 14. Javaで完全停止、感嘆符または疑問符を見つけるための正規表現パターン
- 15. 魚のシェルで二重の感嘆符
- 16. Bashコマンドラインの感嘆符の意味
- 17. eclipse android appプロジェクトの赤い感嘆符
- 18. 感嘆符を付けたRubyの例
- 19. バッチ感嘆符のマーク変数
- 20. 活字体感嘆符、かっこ
- 21. カールユーザー認証で感嘆符/パスワード
- 22. シナトラと疑問符
- 23. 疑問符プレースホルダー
- 24. 疑問符
- 25. .htaccess - 疑問符
- 26. 疑問符
- 27. 疑問符
- 28. のFindFirstと疑問符
- 29. mysqlの疑問符
- 30. ビジュアルスタジオデバッガの疑問符