多处理函数似乎根本不起作用



我只是想用python学习多处理。我写了两个基本函数,但显然它们不起作用。这些可能有什么问题?

startingList = []
evenNumbers = []
unEvenNumbers = []

def fill_list(number):
for x in range(1, number):
startingList.append(x)

def test():
for num in startingList:
if num % 2 == 0:
evenNumbers.append(num)
else:
unEvenNumbers.append(num)

if __name__ == '__main__':
start = time.perf_counter()
p1 = multiprocessing.Process(target=fill_list, args=(17,))
p2 = multiprocessing.Process(target=test)
p1.start()
p2.start()
p1.join()
p2.join()
end = time.perf_counter()
print(startingList, "n", evenNumbers, "n", unEvenNumbers)

这里的问题是您试图在不同的进程中写入startingList,但startingList不是您期望的startingList。在处理具有独立内存边界的多个处理器时,您需要有一些不同的想法。

看看这个关于如何解决这个问题的答案。

相关内容

  • 没有找到相关文章

最新更新