作为 Actor 消息内存和垃圾回收

Akka Actor message memory and Garbage Collection

以下说法是否正确:当一个Actor收到一条消息,在完成模式匹配函数后,消息超出范围,消息被垃圾回收?

在 JVM 上,对象不再是强可达时可能会被垃圾回收,即没有 "normal" 引用链可以从 JVM 中的某个线程 运行 到达它.

所以这意味着,对您的问题的简单回答是:不。您永远不知道消息何时或什至是否会被垃圾收集。您所知道的是,超出范围的引用已被删除。但是,这甚至并不意味着消息不再可达。该对象仍然可以从其他一些参与者中引用。

但是,通常情况下,如果发送了一条消息,但发送方未保留对它的引用,而接收方删除了对它的引用,那么它应该很快就会被垃圾回收。消息通常是短暂的对象,因此对象很可能连一个 GC 周期都活不下来。