天天看點

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模型(二)

繼續閱讀