Я изучил документацию python (3.7), чтобы понять концепцию многопроцессорности. Для объекта Process
существует два метода terminate()
и kill
. Завершение процесса выполняется с помощью SIGTERM, а для уничтожения процесса используется сигнал SIGKILL на Unix.
Когда мы завершаем процесс и проверяем is_alive()
статус процесса, который он дает False
. но когда я использую kill и проверяю статус процесса, он дает is_alive()
статус True. Я не знаю, почему он дает True после завершения процесса, если он совпадает с процессом завершения.
def test():
print("in test method")
time.sleep(3)
if __name__ == '__main__':
p1 = Process(target=test)
p1.start() # start process
# kill process after 1 sec
time.sleep(1)
p1.kill()
print(p1.is_alive()) # why process alive status true when kill process
time.sleep(3)
print(p1.is_alive())