コード スニペットを見てみましょう。
import scala.actors.Actor._
object ActorTest1 extends Application {
val caller = self
val badActor = actor {
receive {
case msg =>
println(Thread.currentThread()+ " "+msg)
caller ! "bbbb"
}
}
badActor ! "aaaa"
receive {
case a: String => println(Thread.currentThread() + " " + a)
}
}
badActor が送信者に "bbbb" と応答した後、アプリケーション全体がブロックされます。に変更caller ! "bbbb"
するsender ! "bbbb"
と動作します。
誰でも理由を説明できますか?