进程间不共享全局变量
进程间不共享全局变量
创建一个子进程就是把主进程的资源进行拷贝产生了一个新的进程,主进程和子进程相互独立
示例
import multiprocessing
import time
# 全局变量
my_list = []
# 写入数据
def write_data():
for i in range(3):
my_list.append(i)
print("add: ", i)
print('write_data', my_list)
# 读取数据
def read_data():
print('read_data', my_list)
if __name__ == '__main__':
# 创建写入数据进程
write_process = multiprocessing.Process(target=write_data)
# 创建读取数据进程
read_process = multiprocessing.Process(target=read_data)
# 启动进程执行相应任务
write_process.start()
time.sleep(2)
read_process.start()
write_data能向全局变量my_list写入数据,但read_data从my_list读出的数据为空。说明存在两份my_list全局变量,并且独立互不影响。
%%{init: {"flowchart": {"htmlLabels": false}} }%% flowchart TB subgraph ide1 ["`__主进程__`"] a1("my_list = []") end subgraph ide2 ["`__写入数据进程__`"] a2("my_list = []") end subgraph ide3 ["`__读取数据进程__`"] a3("my_list = []") end ide1 -- "创建子进程" --> ide2 ide1 -- "创建子进程" --> ide3