Python3多处理进程如何传递变量?

Python3多处理进程如何传递变量?,python,python-3.x,python-multiprocessing,Python,Python 3.x,Python Multiprocessing,我对Python非常陌生,但正在尝试学习如何使用多处理。我有一个方法来计时方法的执行,但是由于某种原因列表对象没有被更改 请参阅下面的代码,我缺少什么 def timeMethod(methodToTime, methodVar, methodVar2): start = datetime.now() if methodVar2 == None and methodVar == None: methodToTime() elif methodVa

我对Python非常陌生,但正在尝试学习如何使用多处理。我有一个方法来计时方法的执行,但是由于某种原因列表对象没有被更改

请参阅下面的代码,我缺少什么

def timeMethod(methodToTime, methodVar, methodVar2):
     start = datetime.now()
     if methodVar2 == None and methodVar == None:
          methodToTime()
     elif methodVar2 == None:
          methodToTime(methodVar)
     else:
          methodToTime(methodVar, methodVar2)

     end = datetime.now()
     time_elapsed = end - start
     print("Seconds Elapsed = ", time_elapsed)

def indirectList(aList):
     appendToList(aList)

def appendToList(aList):
     aList.append(1)

if __name__ == "__main__": 
     import sys
     primeList = []
     print("primeList before execution: " + str(primeList))
     p3 = multiprocessing.Process(target=timeMethod, args=(indirectList, primeList, None)) 
     p3.start()
     p3.join()
     print("primeList after execution: " + str(primeList))
     print("Done!")

控制台输出:

primeList before execution: []
Seconds Elapsed =  0:00:00
primeList after execution: []
Done!

进程不共享相同的内存。Python多处理序列化(pickle)参数以将其传递给多个进程。这意味着每个进程都会获得原始列表的副本

要实现所需功能,只需使用多处理中的特殊共享列表对象:

manager = multiprocessing.Manager()
primes = manager.list(range(10))
多处理
不共享状态。它创建了多个python进程,但事实并非如此,你可以在共享内存中分配对象。看见