Skip to main content
 首页 » 编程设计

python之在 Python 中,以 currentThread() 为键的字典会导致内存泄漏吗

2025年05月04日24tintown

我正在调试 Django 应用程序中的内存泄漏,django_cachepurge 中可能有一些奇怪的东西:

from threading import currentThread 
 
_urls_to_purge = {} 
 
def add_purge_url(url): 
    # .... 
 
    _urls_to_purge.setdefault(currentThread(), set()).add(url) 

这样的构造容易发生内存泄漏吗? 我怀疑是这样,除非我不熟悉这里的一些 Python 魔法。 没有清理 dict 的位置。

请您参考如下方法:

我不知道 currentThread 返回什么,但您可能可以使用内置的 id 或 hash 函数来获取一个安全值。

如果查找不够,例如因为您想遍历容器,所以有 weakref.WeakKeyDictionary。