欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-14 23:27:21
我正在考虑使用类变量作为线程锁,因为我不想在全局变量中定义锁并且还想防止死锁。这实际上有用吗?例: 考虑到我不会A.lock在类的内部或外部重新分配变量,我的假设是它被视为全局锁定?这个对吗? 解决方案 当然。你想要一个容易获得的锁的引用,并将它存储在类上就可以了。 你可能想调用它__lock(激活 ......

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

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的子类中的锁混淆


本文首发于,博客园同步更新