Code Examples for scala actor link
2015-09-25 20:37
267 查看
package test.scala.lang.actor import scala.actors.Actor import scala.actors.Exit object TestActorLink { def main(args: Array[String]): Unit = { //testReact testLink } def testLink = { val master = new MActor master.start() val slave = new SActor(master) slave.start() Thread.sleep(3000) master ! "test" master ! 4 master ! "test" slave ! "test" slave ! 4 slave ! "test" } def testReact = { val t = new TActor t.start() Thread.sleep(3000) t ! 4 t ! "test" } } class MActor extends Actor { def act() { println("master actor start...") loop { react({ case x: String => { println("MActor: " + x) println("MActor: goodbye guys") exit("game over, haha!") //非Normal原因终止 //exit //Normal原因终止 } case o => println(o) }) } } } /** * Terminates execution of self with the following effect on linked actors: * For each linked actor a with trapExit set to true, send message Exit(self, reason) to a. * For each linked actor a with trapExit set to false (default), call a.exit(reason) if reason != 'normal. */ class SActor(master: Actor) extends Actor { def act(){ println("slave actor start...") trapExit = true link(master)//当前Actor链接到的Actor如果以非Normal原因终止,则该Actor也终止。 loop { react({ case Exit(master, reason) => { println(s"---[$master] game over by [$reason]---") println(s"SActor say: why are you so diao, [$master] ?") exit } case x => { println("SActor say: " + x) } }) } } } class TActor extends Actor { def act() { println("act start...") while (true) { react({ case x: String => println(x) }) } } }
http://booksites.artima.com/actors_in_scala/examples/html/ch06.html#sec2
相关文章推荐
- Count the string---hdu3336(kmp Next数组的运用)
- 亿丰之星 · 声动亚洲
- 在项目中使用消息队列的 10 个理由
- 软件重构
- mshta命令用法示例(在dos命令弹出消息框)
- VC关闭窗口退出
- 4、第4次课 CSS代码第三节课20150923
- OC-Block语法
- javascript中 addloadevent和insertAfter函数的使用说明
- django实现文件上传
- 【IOS 开发学习总结-OC-19】★★objective-c面向对象之——类别与扩展
- HTTP协议 (一) HTTP协议详解
- HDU 1151 Air Raid
- 【JavaScript】【学习】对象的创建和继承
- 大数 N!——java
- Healthy Holsteins(USACO 2.1.4)
- markDown学习笔记
- 黑马程序员—java技术blog—第九篇一些常见的基础语法概述
- php脚本的一些注意事项
- 找出两个点之间的所有路径(原创)