– Start
点击此处观看本系列配套视频。
进程有独立的内存
我们先来看一个例子。
from multiprocessing import Process
x = 1
def my_task():
global x
x += 1 # 在进程中修改 x
print(f'x={x}')
if __name__ == '__main__':
p1 = Process(target=my_task)
p1.start()
p1.join()
print(f'x={x}')
如果你认为 x 会被修改,那么你就错了。运行后,我们发现 x 的值并没有被修改,因为每个进程有独立的内存,我们无法修改其他进程中的变量。那我们一定要在进程之间共享一些数据该怎么办呢?有两种办法,一种是共享内存(Shared memory),一种是服务器进程(Server process)
共享内存(Shared memory)
Value
from multiprocessing import Process, Value
def my_task(num):
# 使用锁同步
with nu