创建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 />![image.png](https://cdn.nlark.com/yuque/0/2022/png/520075/1649897457805-e3d0e7c8-81c7-4e20-ac72-e792f900fd55.png#clientId=u83396222-625a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=47&id=u843cdec5&margin=%5Bobject%20Object%5D&name=image.png&originHeight=54&originWidth=772&originalType=binary&ratio=1&rotation=0&showTitle=false&size=54035&status=done&style=none&taskId=u7087adac-739b-4e58-9317-1d65a56775b&title=&width=673)
<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()
}
}
效果截图 正序输出