首页 > 试题广场 >

什么是分布式垃圾回收(DGC)?它是如何工作的?

[问答题]
什么是分布式垃圾回收(DGC)?它是如何工作的?
DGC叫做分布式垃圾回收。RMI使用DGC来做自动垃圾回收。因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理。
发表于 2019-05-11 13:24:36 回复(0)
更多回答
RMI 子系统实现基于引用计数的“分布式垃圾回收”(DGC),以便为远程服务器对象提供自动内存管理设施。
当客户机创建(序列化)远程引用时,会在服务器端 DGC 上调用 dirty()。当客户机完成远程引用后,它会调用对应的 clean() 方法。
针对远程对象的引用由持有该引用的客户机租用一段时间。租期从收到 dirty() 调用开始。在此类租约到期之前,客户机必须通过对远程引用额外调用 dirty() 来更新租约。如果客户机不在租约到期前进行续签,那么分布式垃圾收集器会假设客户机不再引用远程对象。


发表于 2016-07-25 17:35:34 回复(2)

直接跳过rmi的举手

发表于 2020-02-26 21:08:09 回复(2)
DGC叫做分布式垃圾回收。RMI使用DGC来做自动垃圾回收。因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理。
发表于 2021-05-17 19:41:24 回复(0)
概念:
    1)Java虚拟机中,一个远程对象不仅会被本地虚拟机内的变量引用,还会被远程引用。
    2)只有当一个远程对象不受到任何本地引用和远程引用,这个远程对象才会结束生命周期。    
说明:
    1)服务端的一个远程对象在3个地方被引用:
        1>服务端的一个本地对象持有它的本地引用
        2>服务端的远程对象已经注册到rmiregistry注册表中,也就是说,rmiregistry注册表持有它的远程引用。
        3>客户端获得远程对象的存根对象,也就是说,客户端持有它的远程引用。
    2)服务端判断客户端是否持有远程对象引用的方法:
        1>当客户端获得一个服务端的远程对象的存根时,就会向服务器发送一条租约(lease)通知,以告诉服务器自己持有了这个远程对象的引用了。
        2>客户端定期地向服务器发送租约通知,以保证服务器始终都知道客户端一直持有着远程对象的引用。
        3>租约是有期限的,如果租约到期了,服务器则认为客户端已经不再持有远程对象的引用了。
发表于 2019-05-27 16:22:26 回复(0)
DGC叫做分布式垃圾回收。RMI使用DGC来做自动垃圾回收。因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理
发表于 2019-05-03 21:29:28 回复(0)
DGC叫做分布式垃圾回收。RMI使用DGC来做自动垃圾回收。因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理。
发表于 2019-05-02 11:45:35 回复(0)
DGC叫做分布式垃圾回收。RMI使用DGC来做自动垃圾回收。因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理。
发表于 2019-04-28 21:26:38 回复(0)
DGC叫做分布式垃圾回收。RMI使用DGC来做自动垃圾回收。因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理。
发表于 2015-10-29 12:10:42 回复(0)