1

看一下代码片段:

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",它将起作用。

谁能解释为什么?

4

1 回答 1

2

我认为您的调用者引用实际上是对自我的引用,它不是演员实例!:-)

相反,发件人是一个有效的实例,你可以在这里看到:http: //doc.akka.io/docs/akka/snapshot/scala/actors.html

于 2012-07-10T04:06:18.813 回答