天天看点

Akka并发编程——第三节:Actor模型(二)

本节主要内容:

actor api解析

actor中的主要成员变量和方法定义如下:

代码运行结果:

在代码

中分别对poststop、prestart方法进行了重写,在prestart方法中通过代码

对成员变量child进行初始化,然后在poststop方法中使用

停止myactor的运行。在使用代码

创建firstactor时,便会调用prestart方法完成myactor的创建,因此首先会执行firstactor中的prestart()方法

然后在创建myactor时执行myactor中定义的prestart方法

在执行

firstactor作为myactor的supervisor,会先停止myactor,再停止自身,因此先调用myactor的poststop方法,再调用firstactor的poststop方法。

整体代码如下:

运行结果:

代码:

中使用

向自身发送了一条消息,receive方法通过

对这条消息进行处理。receive方法在处理

“test”消息时,会调用

向sender(本例中为firstactor)发送”message from myactor”消息,firstactor使用

处理消息时又向myactor回送该消息,因此最终的输出有两个unknown message,分别对应123和”message from myactor”

unhandled方法用于处理没有被receive方法处理的消息,下面的代码给出的是当不重写unhandled方法时的代码

代码输出:

不难看出,对于

发送的这条消息没有被处理,没有任何的处理逻辑。在实际开发过程中,可能会对不能被处理的消息增加一些应对逻辑,此时可以重写unhandled方法,代码如下:

代码输出结果:

其它如prerestart等方法的使用将在akka容错部分进行讲解。

scala学习(公众微信号:scalalearning)每天为大家带来一点scala语言、spark、kafka、flink、akka等大数据技术干货及相关技术资讯。技术永无止境,勇攀高峰,一往直前!

觉得文章不错?扫描关注

Akka并发编程——第三节:Actor模型(二)

继续阅读