我们有一个 Scala 服务器,它通过套接字使用协议缓冲区获取节点树,我们需要将附加数据附加到每个节点。
在单线程上下文中并且当节点树和关联数据都将同时删除其强引用时(由于超出范围),是否有任何理由使用 Google Guava 的 MapMaker 和 weakKeys() 而不是使用 WeakHashMap ? 似乎使用 MapMaker,需要为同步访问付费,在这种情况下不需要。
顺便说一句,如果 MapMaker 提供对等价设置的访问权限,这样人们就可以选择引用相等而不关心弱引用或软引用,这将是有用的。