actor是scala一个比较好用的库,使并发编程更加便捷。
package actor_test import scala.actors.Actor import scala.actors.Actor._ // define a message class FromXX(msg:String, idx:Int) { val msg_ = msg val idx_ = idx } object Stop class XX(var count: Int, yy: Actor) extends Actor { def act() { for (idx <- 0 to count) { val tmp = new FromXX("MSG " + idx + " FROM XX", idx) //yy !? tmp // synchronous yy ! tmp // asynchronous Console.println("MSG " + idx + " SENT") } Console.println("XX HAS STOP SEND MSG TO YY!") yy ! Stop } } class YY extends Actor { def act() { while (true) { receive { case t:FromXX => Console.println("YY RECEIVE: " + t.msg_) sender ! 0 case Stop => Console.println("YY RECEIVE STOP ORDRE!") exit() } } } } object test extends Application { val yy = new YY val xx = new XX(3, yy) xx.start yy.start }
异步运行结果:
MSG 0 SENT
YY RECEIVE: MSG 0 FROM XX
YY RECEIVE: MSG 1 FROM XX
MSG 1 SENT
MSG 2 SENT
YY RECEIVE: MSG 2 FROM XX
MSG 3 SENT
YY RECEIVE: MSG 3 FROM XX
XX HAS STOP SEND MSG TO YY!
YY RECEIVE STOP ORDRE!
同步运行结果:
YY RECEIVE: MSG 0 FROM XX
MSG 0 SENT
YY RECEIVE: MSG 1 FROM XX
MSG 1 SENT
YY RECEIVE: MSG 2 FROM XX
MSG 2 SENT
YY RECEIVE: MSG 3 FROM XX
MSG 3 SENT
XX HAS STOP SEND MSG TO YY!
YY RECEIVE STOP ORDRE!
我们也可以看到actor的一些特性,
例如actor A发给actor B的消息,B必须是按顺序收到的。
参考
http://www.scala-lang.org/node/242
http://docs.scala-lang.org/overviews/core/actors.html
相关推荐
其中包括:Actor模型和响应式软件的主要概念、Scala语言的基础知识、Akka框架与Akka集群功能、Actor模型中的通道机制和技术、降低消息源与消息目的地之间耦合性的方式、持久化Actor对象和幂等接收者。附录A中还介绍...
《响应式架构:消息模式Actor实现与Scala、Akka应用集成》由10章构成,详细介绍了使用Actor模型中的响应式消息传输模式的理论和实用技巧。其中包括:Actor模型和响应式软件的主要概念、Scala语言的基础知识、Akka...
消息模式Actor实现与Scala、Akka应用集成
scala-actors-2.10 jar包,可以解决 scala-actors-2.10以上版本带来的不兼容问题
响应式架构++消息模式Actor实现与Scala.Akka应用集成+,沃恩·弗农+
用Scala写的akka actor简单demo,已经打包成SBT程序,因为上传大小限制依赖包没上传,用户安装了sbt后只需要执行update命令即可
响应式架构 消息模式Actor实现与Scala.Akka应用集成 高清扫描版
自己用scala实现的朴素贝叶斯算法。最近学习machine learning,由于之前学习了spark,于是使用scala尝试写写代码
响应式架构 消息模式Actor实现与Scala.Akka应用集成_沃恩·弗农_PDF:PDF电子版_2016.07_417_14043812的电子版。
stateless-future, 在完全特色的Scala 语法中,异步编程 无状态未来 无状态未来是一组特定于异步编程的领域特定语言,在纯功能。无状态期货为 scala.concurrent.Future 和 scala.async 提供类似的API,除了无状态...
差分进化算法的Scala实现_Scala_代码_下载
响应式架构 消息模式Actor实现与Scala.Akka应用集成 ,沃恩·弗农
Akka scala 并发 actor 高清原版pdf 学习scala实现akka进行并发编程
《Scala编程》介绍了一种新的编程语言,它把面向对象和函数式编程概念有机地结合为整体,从而形成一种完整统一、语义丰富的新思维体系。《Scala编程》循序渐进,由浅入深,经作者精心组织、仔细编排,将语言中的各种...
scala语言和python一样都是交互式的语言,操作简单。这是wordcount的scala实现,简单明了,比java实现简单很多,希望对大家有所帮助
【课程大纲】 第1讲-Spark的前世今生 共12页 第2讲-课程介绍、特色与价值 共13页 第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 ...第21讲-Scala编程详解:Actor入门 共8页