def main(): args = sys.argv[1:] option = args[0] if option == '--process1': with Pool(5) as p: print(p.map(somefunc, [1, 2, 3])) elif option == '--process2': info('->main') p = Process(target=somefunc2, args=('bob',)) p.start() p.join() elif option == '--process3': qu = Queue() p = Process(target=somefunc3, args=(qu,)) p.start() print(qu.get()) p.join() elif option == '--process4': end1, end2 = Pipe() p = Process(target=somefunc4, args=(end1,)) p.start() print(end2.recv()) p.join() elif option == '--process5': lock = Lock() for i in range(10): Process(target=somefunc5, args=(lock, i)).start() elif option == '--process6': with Manager() as m: m = Manager() l = m.list(range(10)) d = m.dict() p = Process(target=somefunc6, args=(d, l)) p.start() p.joint() print(d) print(l)