Actor有点类似有Java中的线程,使用class或者object继承Actor对象即可,跟Java的线程也有点像。
- 发送和接收消息的例子
object MyActor {
object sender extends Actor {
override def act() : Unit = {
receiver ! "你好呀!"
}
}
object receiver extends Actor {
override def act() : Unit = {
receive {
case x:String => println(x)
}
}
}
def main(args: Array[String]): Unit = {
sender.start()
receiver.start()
}
}
- 优化
receive方法只能接收一次消息,如果调用多次启动多个线程,改用loop+react可以用单一线程接收多个消息。
object receiver extends Actor {
override def act() : Unit = {
loop {
react {
case x:String => println(x)
}
}
}
}
网友评论