Я работал над следующим примером из Doug Hellmann по многопроцессорности:
import multiprocessing
def worker():
"""worker function"""
print 'Worker'
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
Когда я попытался запустить его вне оператора if:
import multiprocessing
def worker():
"""worker function"""
print 'Worker'
return
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
Он начал нерестовые процессы без остановок, и единственный способ остановить его - перезагрузка!
Почему это произойдет? Почему он не сгенерировал 5 процессов и не вышел? Зачем мне нужен оператор if?