Как передать и запустить метод обратного вызова в Python

У меня есть менеджер (главный поток), который создает другие потоки для обработки различных операций. Я хочу, чтобы мой менеджер получал уведомление о завершении созданного им потока (когда завершается выполнение метода run ()).

Я знаю, что могу сделать это, проверив статус всех моих потоков с помощью метода Thread.isActive () , но опрос - отстой, поэтому я хотел получать уведомления.

Я думал дать метод обратного вызова потокам и вызвать эту функцию в конце метода run ():

class Manager():
    ...
    MyThread(self.on_thread_finished).start() # How do I pass the callback

    def on_thread_finished(self, data):
        pass
    ...

class MyThread(Thread):
    ...
    def run(self):
        ....
        self.callback(data) # How do I call the callback?
    ...

Спасибо!

24
задан jww 14 February 2018 в 06:31
поделиться