創建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()**方法