Многопроцессорность. Проверка завершения процесса в другом процессе в классе Python
есть код, в котором 2 функции и запускаются 2 процесса. Нужно во 2 процессе проверить работает ли 1 процесс.
from multiprocessing import Process, current_process
import time
class all_start():
def __init__(self):
pass
def initial(self):
p1 = Process(name='Worker 1', target=self.f1)
p2 = Process(name='Worker 2', target=self.f2)
p1.start()
p2.start()
def f2(self):
print('%s start working' % current_process().name)
#####################################
if p1.is_alive(): #вот тут ошибка, потому что он не понимает что такое p1
print('Процесс 1 еще работает')
#####################################
print('%s finish working' % current_process().name)
def f1(self):
print('%s start working' % current_process().name)
time.sleep(2)
print('%s finish working' % current_process().name)
if __name__ == '__main__':
start1 = all_start()
start1.initial()
Проблема в том, что я не знаю как сделать так, чтобы во 2 процессе проверить завершился ли 1 процесс (оба процесса должны стартовать вместе). Как это возможно сделать?
Была идея сделать из f1 и f2 одну функцию, поставить на неё Lock, if добавить, но это костыли и будет выглядеть некрасиво.