gpt4 book ai didi

Cocoa分布式对象、GC客户端、非GC服务器

转载 作者:行者123 更新时间:2023-12-03 16:45:09 24 4
gpt4 key购买 nike

我有一个设置,其中有两个 Cocoa 进程,与分布式对象 (DO) 进行通信。客户端正在使用垃圾收集,而服务器则没有。

看起来客户端除了我对它们的直接引用之外还保留着远处的对象。这意味着即使我没有对这些对象的引用,它们也会由 NSDistantObjectTableEntry 所拥有。显然它们不会在服务器上被释放。

只有当客户端退出时,它才会释放所有远处的对象。手动断开连接可能也可行,但我不想在客户端运行时这样做。

有没有办法告诉 GC 的 DO 客户端放弃本地不再引用的远程对象?

最佳答案

可能存在跨越客户端和服务器的保留周期 - 即客户端对象保留服务器对象的代理,而服务器对象又保留客户端对象的代理。

这是一个非常简单的保留周期示例,当涉及两个以上对象时,诊断就会变得更加复杂。

参见The Subtle Dangers Of Distributed Objects例如其他与 DO 相关的问题。

关于Cocoa分布式对象、GC客户端、非GC服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/201404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com