前言
我发现我太懒了,说好的学习scala顺便做笔记,然后就没有然后了。这次继续看吧,能记多少记多少。
第一个例子
package zhenghui.akka.actor import scala.actors.Actor /** * user: zhenghui on 2016/1/15. * date: 2016/1/15 * time :21:23 */ object HelloActor extends Actor{ override def act(): Unit = { println(Thread.currentThread().getName) println("hello actor.") } def main(args: Array[String]) { HelloActor.start() } }
写道
actor最简单的例子。这个例子看起来就像是实现了一个Runnable,然后start一下。
匿名scala
package zhenghui.akka.actor import scala.actors.Actor import Actor._ /** * user: zhenghui on 2016/1/15. * date: 2016/1/15 * time :21:37 */ object HelloActor2 { def main(args: Array[String]) { actor { println(Thread.currentThread().getName) println("hello actor.") }.start() } }
写道
好吧,就是一个匿名actor而已。不用定义这么多actor了
发送和接受消息
package zhenghui.akka.actor import scala.actors.Actor._ /** * user: zhenghui on 2016/1/15. * date: 2016/1/15 * time :21:37 */ object ActorMessage { def main(args: Array[String]) { val actor_message = actor { while (true){ receive{ case msg => println(s"receive msg:$msg") } } } actor_message ! "hello actor" } }
写道
这个感觉就和java的runabble线程不一样了。这里可以接收消息,并且用一个偏函数接收到消息并做处理。
这个 receive 和 ! 很有趣。
这个 receive 和 ! 很有趣。
自身类型作为actor
package zhenghui.akka.actor import scala.actors.Actor._ /** * user: zhenghui on 2016/1/15. * date: 2016/1/15 * time :22:07 */ object ActorMessage2 { def main(args: Array[String]) { self ! "hello actor" self receive{case msg => println(msg)} } }
写道
感觉很有趣啊。这种写法。
case class作为消息类型
package zhenghui.akka.actor import scala.actors.Actor._ /** * user: zhenghui on 2016/1/15. * date: 2016/1/15 * time :22:12 */ object ActorMessage3 { def main(args: Array[String]) { self ! Message("hello scala ") self receive{case Message(name) => println(name)} } } case class Message (name:String)
写道
case class 或者case object 作为消息体类型,外加scala的模糊匹配,真当是绝配
发送者与接受者的通信
package zhenghui.akka.actor import scala.actors.Actor._ /** * user: zhenghui on 2016/1/15. * date: 2016/1/15 * time :22:19 */ object ActorMessage4 { def main(args: Array[String]) { val receiveActor = actor{ receive{ case msg => println(msg) sender ! "hello sender" } } // actor{ // receiveActor ! "hello receiver " // receive{case msg => println(msg)} // } receiveActor ! "hello receiver2 " self receive{case msg => println(msg)} } }
写道
我忽然想起来,如果要写一个java的线程通信,那有多困难。
相关推荐
阿卡持久性rocksdb Akka 的实验性基于的持久性存储。 这是一个 alpha 版本; 目前它更像是 RocksDB 和 Akka-Persistence 的实验,而不是 Akka-...笔记 需要 Akka 2.4-Snapshot,因为它使用简化的 akka-persi
在期间,我想编写一个 Scala 宏,当它遇到路由之间缺少的连接运算符时,它会中止编译(或至少引发编译器警告)。 ScalaWAW hackathon 是一种自带笔记本电脑的活动,我们不保证会场的网络连接可靠。 因此,克隆这个...
笔记 要让多个分片参与者在单独的节点子集上运行,并且可以从集群中的其他节点访问,例如: Counter1 在 node1、node2、node3 上运行 Counter2 在 node7、node8、node9 上运行 Query 想同时查询 Counter1 分片和 ...
目录如下 Scala简介&快速入门 基础语法 变量 数据类型 流程控制 操作符重载 模式匹配 函数式编程基础 函数式编程说明 函数定义/声明 函数运行机制 递归 ...Scala数据结构之集合 ...Akka 介绍
Akka笔记 Akka消息 文档 源代码 从 Akka记录 文档 源代码 从 Akka测试 文档 源代码 从 Akka消息传递请求和响应 文档 源代码 从arunma / AkkaMessagingRequestResponse分叉
Routing appsg8 mhamrah/sbt -b spray#And for Spark Appsg8 mhamrah/sbt -b spark笔记Go风格的目录布局合并的 build.sbt 文件:包括 akka、scalatest、logback、typesafe config 和 slick。 使用环境变量(包括回退...
ddd-酵素-阿卡 另见后续项目: 目标 了解如何在React式平台之上应用 DDD/CQRS 概念。 查看课程页面: : 笔记 业务逻辑摘自: : 灵感: 技术: 具体来说: :
管道 海湾大数据Scala的完整管道培训管道描述约会收视率数据=> Akka应用=> Kafka => Spark Streaming => Cassandra =>仪表板此外,还将在笔记本电脑界面上结合使用Cassandra实时数据和静态Parquet数据来演示Spark ...
笔记 该分支( master )拥有支持的最新播放版本的最新版本(主要版本2.x )( 2.7 ); 分支保留了play 2.6版本(major.minor 1.6.x版)的swagger-play版本。 较旧的版本可用,但分支不再支持。 概述 这是一个在...
nescala 2015 笔记 网站: 会谈 0800:门打开 登记入住并喝杯咖啡 0850:开场白 让我们记住我们为什么在这里感谢那些让这一切发生的人 0900:Akka HTTP——什么、为什么和如何 马蒂亚斯·多尼茨 (@sirthias) 0950...