进程间是不能共享变量的,但是如果当有需要共享变量,可以借用multiprocessing模块中的方法,下面就来介绍一下该模块中方法的实现方法:
(一)共享变量
[AppleScript] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 | 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] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | 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] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | 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] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 | 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 ) |
更多技术资讯可关注:gzitcast