其他函数运行时是否执行回调?

时间:2017-03-07 07:18:35

标签: python class callback

我有一个概念上的怀疑。

如果我将一个类方法作为一个回调函数传递给另一个运行在另一个线程上的程序,那么我会遇到其他一些类方法(不是回调方法),例如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()   

1 个答案:

答案 0 :(得分:1)

不是我的回答,而是@ Bakuriu,这是正确的:

如果将回调传递给另一个线程,那么是的,它可以在你的balance方法运行时执行...即使它们会因为GIL而在CPython中交错,但它们将同时执行。在其他Python实现中,它们可能并行执行。