Java中的并发编程主要通过线程实现的,通过共享资源的机制实现并发,但会面临着死锁的问题。在Scala中,是通过消息传递来实现并发的,而Actor正是实现消息传递的。
1、Actor初识
package com.yy.enhance
import scala.actors.Actor
/**
* Scala Actor并发编程
* 初识Actor
*/
object MyActor1 extends Actor{
//重新act方法
def act(){
for(i <- 1 to 10){
println("actor1_ " + i)
Thread.sleep(2000)
}
}
}
object MyActor2 extends Actor{
//重新act方法
def act(){
for(i <- 1 to 10){
println("actor2_ " + i)
Thread.sleep(2000)
}
}
}
object ActorTest extends App {
//启动Actor
MyActor1.start()
MyActor2.start()
}
结果如下:
actor1_ 1
actor2_ 1
actor1_ 2
actor2_ 2
actor1_ 3
actor2_ 3
actor1_ 4
actor2_ 4
actor2_ 5
actor1_ 5
actor2_ 6
actor1_ 6
actor2_ 7
actor1_ 7
actor2_ 8
actor1_ 8
actor2_ 9
actor1_ 9
actor2_ 10
actor1_ 10
2、Actor消息传递