Python:我可以使用类变量作为线程锁吗?

匿名 (未验证) 提交于 2019-12-02 22:51:30

我正在考虑使用类变量作为线程锁,因为我不想在全局变量中定义锁并且还想防止死锁。这实际上有用吗?例:

import threading  class A(object):     lock = threading.Lock()     a = 1      @classmethod     def increase_a(cls):         with cls.lock:             cls.a += 1

考虑到我不会A.lock在类的内部或外部重新分配变量,我的假设是它被视为全局锁定?这个对吗?

 

解决方案


当然。你想要一个容易获得的锁的引用,并将它存储在类上就可以了。

你可能想调用它__lock(激活名称修改),所以它不会与A的子类中的锁混淆


本文首发于python黑洞网,博客园同步更新

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!