04-进程参数、全局变量问题
目标¶
-
知道多进程之间不能共享全局变量
-
能够给子进程指定的
函数传递参数
1. 子进程参数传递¶
给子进程传递参数方法和给子线程传递参数方法基本一致!
2. 进程间不共享全局变量¶
import multiprocessing
# 定义全局变量
num = 100
# 定义work方法,设置num1的值
def work():
global num # 在函数内部声明使用全局变量num
num = num + 1 # 对num值进行+1
print("work num = %d" % num)
# 定义work2方法,获取num1的值
def work2():
print("work2 num = %d" % num)
if __name__ == '__main__':
# 创建子进程
process1 = multiprocessing.Process(group=None, target=work, name="MyProcess")
process1.start()
# 创建第二个子进程
process2 = multiprocessing.Process(group=None, target=work2, name="MyProcess2")
process2.start()
运行结果:¶
work num = 101
work2 num = 100
由运行结果可以看出,work函数对num1的修改,在work2中并没有获取到,而还是原来的100,所以,进程之间是不能够共享变量的