gpt4 book ai didi

java - 引用计数是一个好的设计吗

转载 作者:行者123 更新时间:2023-11-30 05:00:24 28 4
gpt4 key购买 nike

我们正在开发一个应用程序容器,它使用引用计数作为跟踪收到的请求和发送的响应的机制。引用计数用于允许容器正常关闭,即 if (refCount == 0) shutdown;

对于每个请求以及待处理的响应,引用计数都会增加。仅当应用程序接受请求并且仅当应用程序发送有效响应时,引用计数才会递减。所以这是我的问题,在这种情况下,与保留仅在应用程序/容器发送响应时关闭的 RequestContext 相比,引用计数是否是一个好的设计决策?

由于该软件是用 Java 实现的,所以我在查看 Java 中的其他选项并发现了这篇文章,http://weblogs.java.net/blog/2006/05/04/understanding-weak-references这让我认为尝试利用 ReferenceQueue 可能是实现此目的的另一种方法。

最佳答案

这实际上是一种非常巧妙的方法。您还应该另外使用 ThreadLocal (如果您的请求-响应管道将由单个线程处理)

基本上,当您收到请求时。将带有 WeakRefernce 的 ThreadLocal 设置为您的请求对象(或请求的某些属性,例如用户 ID 等)。然后您可以在处理管道中的任何位置 get() 该对象。

如果您使用工作线程池来处理请求,请确保从线程的 ThreadLocal 中取消设置弱引用对象,以便不再存在该对象的引用。如果您为每个请求生成一个新线程,则甚至不需要这样做。当线程终止时,该对象将自动返回到引用队列(因为没有 Activity 引用指向该对象)

关于java - 引用计数是一个好的设计吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6933171/

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