我有一个概念上的怀疑。
如果我将一个类方法作为一个回调函数传递给另一个运行在另一个线程上的程序,那么我会遇到其他一些类方法(不是回调方法),例如while(True)
。
callback
永远 会执行吗?
class Bicycle(object):
__init__(self, name):
self.name = name
self.f = 0
def callback(self, push_force):
#Go ahead
self.f = push_force
def balance(self):
while True:
# Balance the Bicycle
def main():
B1 = Bicycle("Red")
external(callback=B1.callback)
while True:
B1.balance()
答案 0 :(得分:1)
不是我的回答,而是@ Bakuriu,这是正确的:
如果将回调传递给另一个线程,那么是的,它可以在你的balance方法运行时执行...即使它们会因为GIL而在CPython中交错,但它们将同时执行。在其他Python实现中,它们可能并行执行。