创建Actor
我们可以通过类(class)或者单例对象(object), 继承Actor特质的方式, 来创建Actor对象.
步骤
- 定义class或object继承Actor特质
- 重写act方法
- 调用Actor的start方法执行Actor
注意: 每个Actor是并行执行的, 互不干扰.
通过class实现
需求
- 创建两个Actor,一个Actor打印1-10,另一个Actor打印11-20
- 使用class继承Actor实现.(如果需要在程序中创建多个相同的Actor) ```scala import scala.actors.Actor
//案例:Actor并发编程入门, 通过class创建Actor object ClassDemo01 {
//需求: 创建两个Actor,一个Actor打印1-10,另一个Actor打印11-20 //1. 创建Actor1, 用来打印1~10的数字. class Actor1 extends Actor { override def act(): Unit = for (i <- 1 to 10) println(“actor1: “ + i) }
//2. 创建Actor2, 用来打印11~20的数字. class Actor2 extends Actor { override def act(): Unit = for (i <- 11 to 20) println(“actor2: “ + i) }
def main(args: Array[String]): Unit = { //3. 启动两个Actor. new Actor1().start() new Actor2().start() } }
效果截图 乱序输出<br />
<a name="FIiit"></a>
# object继承Actor创建
(如果在程序中只创建一个Actor)
```scala
import scala.actors.Actor
object Test02 {
//创建两个Actor,一个Actor打印1-10,另一个Actor打印11-20
object Actor1 extends Actor {
override def act(): Unit = {
for (i <- 1 to 10 ) {
print(i + "\t")
}
}
}
object Actor2 extends Actor {
override def act(): Unit = {
for (i <- 11 to 20 ) {
print(i + "\t")
}
}
}
def main(args: Array[String]): Unit = {
//调用start()方法启动Actor
Actor1.start()
Actor2.start()
}
}
效果截图 正序输出