A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Leo06 于 2018-11-8 08:32 编辑

进程间是不能共享变量的,但是如果当有需要共享变量,可以借用multiprocessing模块中的方法,下面就来介绍一下该模块中方法的实现方法:
(一)共享变量

[AppleScript] 纯文本查看 复制代码
import multiprocessing


def func(num):
    num.value = 20

if __name__ == "__main__":
    num = multiprocessing.Value("d", 10.0)
    print(num.value)
    p = multiprocessing.Process(target=func, args=(num,))
    p.start()
    p.join()
    print(num.value)


(二)共享数组
[AppleScript] 纯文本查看 复制代码
import multiprocessing


def func(arr):
    arr[0] = 6
    arr[1] = 7


if __name__ == "__main__":
    arr = multiprocessing.Array("i", [1, 2, 3, 4, 5])
    print(arr[:])
    p = multiprocessing.Process(target=func, args=(arr,))
    p.start()
    p.join()
    print(arr[:])


(三)共享列表
[AppleScript] 纯文本查看 复制代码
import multiprocessing


def func(mylist):
    mylist.append(11)
    mylist.append(22)
    mylist.append(33)


if __name__ == "__main__":
    mylist = multiprocessing.Manager().list(range(5))
    p = multiprocessing.Process(target=func, args=(mylist,))
    p.start()
    p.join()
    print(mylist)


(四)共享字典
[AppleScript] 纯文本查看 复制代码
import multiprocessing


def func(mydict):
    mydict['name'] = 'python'
    mydict['age'] = 20


if __name__ == "__main__":
    mydict = multiprocessing.Manager().dict()
    p = multiprocessing.Process(target=func, args=(mydict,))
    p.start()
    p.join()
    print(mydict)






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马