You want to use a methodjoin that stops the main thread of a process from moving forward until all subprocesses are complete:
, , join() -.
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
processes = []
for i in range(10):
p = Process(target=f, args=('bob',))
processes.append(p)
for p in processes:
p.start()
p.join()
print('finished!')
EDIT:
join
pool = Pool(processes=4)
result = pool.apply_async(f, (10,))
pool.close()
pool.join()
print("completed")