# CS 450: Process example 5: Address space of child processes in Python # version 2014-01-21 7:13 PM # from multiprocessing import Process glovar = 1 def go_proc(): for i in range(5): # Create each process, have it run say_hello(i) # then print child's process id & our global var # p = Process(target=say_hello, args=([i])) # (Note list of argument values) p.start() print('Started process {}'.format(p.pid)) print('glovar = {}'.format(glovar)) # Each child prints global var before and after # setting it to 2 * its process id # def say_hello(id): global glovar glovar_init = glovar glovar = id * 2 # twice our process id print('Child {}, glovar was {}, setting it to {}'.format(id, glovar_init, glovar)) go_proc() # run the main program # Sample output # # Started process 2886 # glovar = 1 # Started process 2887 # glovar = 1 # Child 0, glovar was 1, setting it to 0 # Started process 2888 # glovar = 1 # Child 1, glovar was 1, setting it to 2 # Started process 2889 # glovar = 1 # Child 2, glovar was 1, setting it to 4 # Started process 2890 # glovar = 1 # Child 3, glovar was 1, setting it to 6 # Child 4, glovar was 1, setting it to 8