Erlang 在进程终止之前,如何在单个进程中取消分配二进制文件?

Erlang 在进程终止之前,如何在单个进程中取消分配二进制文件?,erlang,Erlang,通常,当count引用为none时,二进制文件将自动解除分配,但是在进程终止之前,如何在单个进程中解除分配二进制文件?? 非常感谢 您不应该手动取消分配二进制文件。Erlang使用引用计数来跟踪二进制文件的使用位置。每当一个进程创建一个二进制文件时,计数就会增加;每当它被发送到另一个进程时,计数就会增加。随着进程停止使用二进制文件(即不再将任何变量绑定到二进制文件),计数将减少 一个二进制文件是由一个进程使用还是由多个进程使用并不重要,因为当引用计数为零时,二进制文件会自动被垃圾收集。因此,即使

通常,当count引用为none时,二进制文件将自动解除分配,但是在进程终止之前,如何在单个进程中解除分配二进制文件??
非常感谢

您不应该手动取消分配二进制文件。

Erlang使用引用计数来跟踪二进制文件的使用位置。每当一个进程创建一个二进制文件时,计数就会增加;每当它被发送到另一个进程时,计数就会增加。随着进程停止使用二进制文件(即不再将任何变量绑定到二进制文件),计数将减少

一个二进制文件是由一个进程使用还是由多个进程使用并不重要,因为当引用计数为零时,二进制文件会自动被垃圾收集。因此,即使您只在单个进程中使用二进制文件,Erlang VM也会为您处理它


事实上,要应用的一般“规则”是,与Erlang中的任何其他数据类型一样,二进制文件会自动进行垃圾收集。

规则很简单——如果是其他类型的话(client1)引用了二进制文件,并且您解除分配了此二进制文件,那么在解除分配后,client1将具有指向二进制文件的悬空指针,并将在下次访问二进制文件时获取SIGSEGV。当使用下面的代码解除分配二进制文件时,它是否处于活动状态?为什么?B1=>。垃圾收集(self())。Erlang是一个使用引用计数的垃圾收集。只要停止使用包含二进制文件的变量或退出当前进程,它就会被自动清除。