为 DataClass 创建锁定函数
Create a Lock Function for DataClass
我有一个简单的 dataclass
可以像这样跟踪我的开关状态
@dataclass
class status:
switch: bool = False
这个 class 被两个线程使用,所以我想实现一个逻辑来 lock
switch
变量更改,而其他线程更改 switch
值。
类似
@dataclass
class status:
lock: bool = False
switch: bool = False
def setattr(self, val):
if self.lock is not False:
self.switch = val
我想知道是否有更好的方法来设置这样的逻辑。我不需要调用上面的方法来检查 lock
更改 switch
变量的地方。
您应该使用现有的“锁”。例如在 Threading library。当您希望一个线程拥有它并使用锁定的资源时,您就“获得”了锁。当另一个线程试图获取锁时,它将阻塞直到第一个线程释放它。
我有一个简单的 dataclass
可以像这样跟踪我的开关状态
@dataclass
class status:
switch: bool = False
这个 class 被两个线程使用,所以我想实现一个逻辑来 lock
switch
变量更改,而其他线程更改 switch
值。
类似
@dataclass
class status:
lock: bool = False
switch: bool = False
def setattr(self, val):
if self.lock is not False:
self.switch = val
我想知道是否有更好的方法来设置这样的逻辑。我不需要调用上面的方法来检查 lock
更改 switch
变量的地方。
您应该使用现有的“锁”。例如在 Threading library。当您希望一个线程拥有它并使用锁定的资源时,您就“获得”了锁。当另一个线程试图获取锁时,它将阻塞直到第一个线程释放它。