如何实现"python 不同进程共享变量 manager 全局变量"

概述

在Python中,可以通过使用multiprocessing.Manager来实现不同进程之间共享变量的功能。Manager模块提供了一个命名空间,可以存储变量并在不同进程之间共享。

流程表格

步骤 描述
1 导入必要的模块
2 创建Manager对象
3 Manager对象上创建全局变量
4 创建多个进程,传入全局变量
5 在不同进程中修改和读取全局变量

代码实现

import multiprocessing

# 步骤1:导入必要的模块
from multiprocessing import Manager, Process

# 步骤2:创建Manager对象
manager = Manager()

# 步骤3:在Manager对象上创建全局变量
global_var = manager.dict()

def update_global_var(key, value):
    global global_var
    global_var[key] = value

def read_global_var(key):
    global global_var
    return global_var[key]

def worker1():
    # 步骤5:在不同进程中修改全局变量
    update_global_var('key', 123)
    
def worker2():
    # 步骤5:在不同进程中读取全局变量
    value = read_global_var('key')
    print("Value in worker2:", value)

if __name__ == '__main__':
    # 步骤4:创建多个进程,传入全局变量
    p1 = Process(target=worker1)
    p2 = Process(target=worker2)
    
    p1.start()
    p2.start()
    
    p1.join()
    p2.join()

状态图

stateDiagram
    [*] --> Worker1
    Worker1 --> Worker2
    Worker2 --> [*]

通过以上步骤,你可以实现Python中不同进程共享变量的功能。希望这篇文章对你有所帮助!