2015-04-26 17 views
2

我正在閱讀this Akka文檔,並且我不明白主人如何等待Result消息。爲什麼Akka在這個例子中等待?

在代碼的底部,接收的消息Calculate

// start the calculation 
master ! Calculate 

!消息是告訴消息,這意味着它是異步的。爲什麼應用程序不會在該行後退出?

回答

3

我相信Akka ActorSystem的默認調度程序使用守護程序線程,因此JVM不會退出,除非ActorSystem被關閉。這就是爲什麼測試將繼續運行,即使tellApp的最後一行。

+0

所以這是JVM的功能,而不是讓它等待的框架......任何想法如何控制它? – davidshen84

+0

您可以通過明確地關閉不需要的演員和/或在程序結束時關閉演員系統來控制演員(關閉系統也會關閉所有演員)。 – Quizzie