|
发表于 2022-3-12 23:13:52
|
显示全部楼层
不能用于Pool,只能用于Process
- from multiprocessing import Process, Value, Array
- def test(num, mystr, arr):
- # 修改整型
- num.value *= 2
- # 修改字符数组
- for i in range(len(mystr)):
- mystr[i] = '1'
- # 修改浮点型数组
- for i in range(len(arr)):
- arr[i] = arr[i] * 2
-
- def showVars(num, myStr, floatArr):
- print('整型: ', num.value)
- print('字符数组: ', myStr[:])
- print('浮点型数组: ', floatArr[:])
-
- if __name__=='__main__':
- # 初始化
- num = Value('i', 2) # 整型
- myStr = Array('u', "http://www.1118pc.com") # 字符串(字符数组) 使用'u'
- floatArr = Array('d', [1.0, 1.5, -2.0]) # 浮点型 数组
- print('==================初始化:==================')
- showVars(num, myStr, floatArr)
- # 开启3个进程
- ps = [Process(target=test, args=(num, myStr, floatArr)) for x in range(3)]
- for p in ps:
- p.start()
- for p in ps:
- p.join()
- print()
- print('==================经过子进程修改后:==================')
- showVars(num, myStr, floatArr)
复制代码 |
|