當你執行一個python腳本時,進程/解釋器退出是因爲它從腳本中讀取了一個EOF字符? [即是退出信號]python進程如何知道何時退出?
的跟進這是怎麼了/當一個Python子進程知道要退出,即當您通過重寫run()方法啓動子進程,如下:?
class Example(multiprocessing.Process):
def __init__(self, task_queue, result_queue):
multiprocessing.Process.__init__(self)
self.task_queue = task_queue
self.result_queue = result_queue
def run(self):
while True:
next_task = self.task_queue.get()
if next_task is None:
print '%s: Exiting' % proc_name
break
#more stuff...[assume there's some task_done stuff, etc]
if __name__ == '__main__':
tasks = multiprocessing.JoinableQueue()
results = multiprocessing.Queue()
processes = [ Example(tasks, results)
for i in range(5) ]
for i in processes:
i.start()
#more stuff...like populating the queue, etc.
現在,我很好奇的是:子進程在run()方法完成後自動退出嗎?如果我在執行過程中殺死主線程,子進程會立即結束嗎?如果它們的run()調用可以獨立於父進程的狀態完成,它們會結束嗎?