我到处找了找,但没有找到这样的东西。假设我有一大群线程,它们不断地读取和更新一个整型变量x
。当x
超过某个边距(比如500)时,我想要一个回调来运行回调。在
如何在不给系统带来沉重负担的情况下完成这项工作,比如让一个线程拥有一个while true
并检查变量是否已更改?性能至关重要。但道德也是如此。在
在纯代码中应该是这样的:
x = 10
def runMe():
print('Its greater than 500!!')
def whenToRun():
return x >= 500
triggers.event(runMe, whenToRun)
如果} 方法:
x
是某个对象的属性,而不是全局变量,那么这非常简单:添加一个^{显然,您可以通过以下方法使其更加灵活:
x_callback
。在register(name, callback)
任意选择。在register(name, condition, callback)
。在self.x_callback(oldval=self.x, newval=value)
以便回调可以看到旧值和新值。在if self.x_callback(value):
因此回调可以接受或拒绝更改。在value = self.x_callback(value)
因此回调可以覆盖更改。在您希望有一个函数(a“setter”),每当变量的值发生变化时都会调用该函数。一个好的方法是定义一个
@property
。它的行为类似于一个变量,但有一个getter函数和一个setter函数。在然后,在setter中,调用您需要的任何回调,它将对更改做出反应。在
这应该可以做到:
然后,您可以:
^{pr2}$相关问题 更多 >
编程相关推荐