欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python 多进程全局变量

程序员文章站 2024-02-15 21:38:40
...

 

对于共享整数或者单个字符,初始化比较简单,参照下图映射关系即可。如i = Value('i', 1), c = Value('c', '0')。  

python 多进程全局变量

  注意,如果我们使用的code在上表不存在,则会抛出:

    size = ctypes.sizeof(type_)

  TypeError: this type has no size

 

上代码:

import multiprocessing
from multiprocessing import Process, Manager

import time

def f(d, l):
    i = 0
    while True:
        if i==0:
            i=1
        else:
            i=0
        d.value=i
        time.sleep(0.1)
    # print(l)


def receive(d, l):
    while True:
        print(d)
        time.sleep(0.1)


if __name__ == '__main__':
    with Manager() as manager:
        # d = manager.dict()

        l = manager.list(range(5))

        d = multiprocessing.Value("i", 1)
        p_list = []
        # for i in range(10):
        p = Process(target=f, args=(d, l))
        p.start()
        p1 = Process(target=receive, args=(d, l))
        p1.start()
        p.join()
        p1.join()