Pythonスクリプトを実行すると、スクリプトからEOF文字を読み取るため、プロセス/インタープリターは終了しますか? [つまり、それは出口信号ですか?]
これに続くのは、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() 呼び出しが親プロセスのステータスとは無関係に完了できる場合、それらは終了しますか?