13691255250 发表于 2020-8-15 14:15:44

求问多进程如何修改全局变量?

import multiprocessing
a = {}
def test(number):
    global a
    a = '数字' + str(number)

if __name__ == '__main__':
    for i in range(3):
      p = multiprocessing.Process(target=test, args=(i,))
      p.start()
    print(a)
求问如何让结果显示为{'0': '数字0','1': '数字1','2': '数字2'}

zltzlt 发表于 2020-8-15 14:21:04

多进程中,每个进程中所有数据(包括全局变量)都各有拥有一份,互不影响

zltzlt 发表于 2020-8-15 14:28:54

或者你可以用多线程

import threading

a = {}


def test(number):
    global a
    a = '数字' + str(number)


if __name__ == '__main__':
    for i in range(3):
      p = threading.Thread(target=test, args=(i,))
      p.start()
    print(a)

小甲鱼的铁粉 发表于 2020-8-15 15:00:40

zltzlt 发表于 2020-8-15 14:28
或者你可以用多线程

{:10_275:}

hrp 发表于 2020-8-15 15:06:57

多进程的进程之间数据互通是比较麻烦的,你可以用多线程。
页: [1]
查看完整版本: 求问多进程如何修改全局变量?