Scala吧~  - 讨论区

标题:Scala Tutorial 012:使用Actor实现异步调用方法

2014年02月28日 星期五 10:06

Actor是Scala中最重要的概念之一,通过使用Actor,可以安全且方便的实现过程的异步调用,进而实现程序的并发执行。我们通过使用Message机制来和Actor进行通讯,无需担心线程安全的问题。

下面的示例代码演示了Actor的基本使用方法,请注意,在Scala的最新版本中,此种使用方法已经是deprecated,在后续版本中,将以Akka的Actor作为标准。

import scala.actors._
import scala.actors.Actor._

object S012_Actors {

	def main(args: Array[String]): Unit = {
		SayHello.start
		PrintHello.start
		
		SayHello ! ("World" ,PrintHello)
		SayHello ! ("Universe",PrintHello)
		SayHello ! ("end",PrintHello)
		SayHello ! ("cat not be reached",PrintHello)
	}

}

object SayHello extends Actor {
	def act() {
		while (true) {
			receive {
				case (msg: String,act: Actor) => {
					if(msg == "end" ) {
						act ! msg
						return
					}
					act ! ("Hello, " + msg);
				}
			}
		}
	}
}

object PrintHello extends Actor {
	def act() {
		while(true){
			receive {
				case msg : String => {
					if(msg == "end") {
						return;
					}
					println(msg)
				}
			}
		}
	}
}

参考资料:

http://www.artima.com/pins1ed/actors-and-concurrency.html

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号