创建Actor
创建Actor的方式和Java中创建线程很类似,也是通过继承来创建。
使用方式
- 定义class或object继承Actor特质
- 重写act方法
- 调用Actor的start方法执行Actor
[!NOTE]
类似于Java线程,这里的每个Actor是并行执行的
示例
示例说明
创建两个Actor,一个Actor打印1-10,另一个Actor打印11-20
- 使用class继承Actor创建(如果需要在程序中创建多个相同的Actor)
- 使用object继承Actor创建(如果在程序中只创建一个Actor)
参考代码
使用class继承Actor创建
object _05ActorDemo {
class Actor1 extends Actor {
override def act(): Unit = (1 to 10).foreach(println(_))
}
class Actor2 extends Actor {
override def act(): Unit = (11 to 20).foreach(println(_))
}
def main(args: Array[String]): Unit = {
new Actor1().start()
new Actor2().start()
}
}
使用object继承Actor创建
object Actor1 extends Actor {
override def act(): Unit =
for(i <- 1 to 10) {
println(i)
}
}
object Actor2 extends Actor {
override def act(): Unit =
for(i <- 11 to 20) {
println(i)
}
}
def main(args: Array[String]): Unit = {
Actor1.start()
Actor2.start()
}
Actor程序运行流程
- 调用start()方法启动Actor
- 自动执行act()方法
- 向Actor发送消息
- act方法执行完成后,程序会调用**exit()**方法