Define a global list, and pass this list to two child processes respectively. One of the child processes is modified and then printed, and the other process is not modified but only printed

Code

# 编程实现:定义一个全局的列表,把这个列表,
# 分别传到两个子进程中,其中一个子进程修改,
# 之后打印,另外一个进程,不修改,仅仅打印

import multiprocessing


global_list = [100]


def modify_list(g_list):
    g_list.append(200)
    print("in modify_list function, global_list is {}".format(g_list))


def show_list(g_list):
    print("in show_list function, global_list is {}".format(g_list))


if __name__ == '__main__':
    # 定义进程对象
    process1 = multiprocessing.Process(target=modify_list, args=(global_list,))
    process2 = multiprocessing.Process(target=show_list, args=(global_list,))
    for process in [process1, process2]:
        # 启动子进程
        process.start()
        # 等待子进程运行结束, 按列表中进程对象的顺序进行等待
        process.join()


in conclusion

Global variables are not shared between processes

Guess you like

Origin blog.csdn.net/u010684603/article/details/108313316