Python 线程关闭回调

Python threading on close callback

我有 Thread,我想在它完成时更改一些标志。例如:

import threading 

def on_done():
    # do some printing or change some flags

def worker():
    # do some calculations

t = threading.Thread(target=worker, on_close=on_done)
t.start()

但我找不到那样的方法。任何想法我怎么能以某种方式管理它? worker 函数在单独的文件中,因此它不知道标志。

提前致谢

一种选择是简单地包装辅助函数:

def wrapped_worker():
    worker()
    on_done()

然后,将目标设置为wrapped_worker:

t = threading.Thread(target=wrapped_worker, on_close=on_done)

有关更深入的示例,请参阅 this answer