首页 > 解决方案 > 为 DataClass 创建一个锁定函数

问题描述

我可以像这样简单dataclass地跟踪我的开关状态

@dataclass
class status:
    switch: bool = False

这个类由两个线程使用,所以我想在其他线程更改值时实现变量更改lock的逻辑。switchswitch

就像是

@dataclass
class status:
    lock: bool = False
    switch: bool = False
    
    def setattr(self, val):
        if self.lock is not False:
            self.switch = val

我想知道是否有更好的方法来设置这样的逻辑。我不需要调用上面的方法来检查lock更改switch变量的东西。

标签: pythonpython-3.xpython-dataclasses

解决方案


您应该使用现有的“锁定”。例如在线程库中。当您希望一个线程拥有它并使用锁定的资源时,您“获取”了锁。当另一个线程尝试获取锁时,它将阻塞,直到第一个线程释放它。


推荐阅读