Scala收到(演员)没有收到任何东西?

时间:2012-12-09 07:04:09

标签: multithreading scala actor

我一直在努力与演员一起玩,但我遇到了一个问题。当我尝试将某些内容发送回调用者时,它似乎根本没有完成,即使它正在处理不同的情况。 我在父演员中的收到如下:

        receive {
            case (x,1) => { // case of html
              println("reaches here!")
            }
            case (url,name,2) => {
                              println("doesnt reach here!")
            }
            case _ => println("Error on callback")
        }

我的演员'(类处理器)行为方法(释义): 第一个actor的act方法将调用以下代码:

    {
        println()
        caller ! (s,1)
        println(caller)
        val processUrls = new Processor(2, s.toString, caller, map, queue)
        processUrls.start()
    }

所以上面的那个有效。它产生同一个类的另一个actor,它调用一个不同的方法,但是将它传递给同一个调用者,这样原始调用者就会收到该消息。它在它的行为中调用以下方法:

{
...
...
println(caller)
caller ! (url, name.get, 2)
}

到目前为止,调用者是完全相同的(在两个地方打印它会产生完全相同的东西。

然而,当我尝试在第二种方法中发回该消息时,绝对没有打印。这就像呼叫者甚至没有收到消息。即使是全能_案例也不会被打印出来。我不知道发生了什么。

1 个答案:

答案 0 :(得分:1)

没关系,我没有被环绕的接收......