我现在正在学习python的多处理,但是遇到一个问题:为什么使用多处理时速度较慢?无论我使用pool.apply_async
还是pool.map
,速度仍然比没有多处理的速度慢。
这是代码:
import multiprocessing
import time
def calc(ls):
return [x + 1 for x in ls]
if __name__ == "__main__":
n = 10000000
n_jobs = 10
start = time.time()
pool = multiprocessing.Pool(processes=n_jobs)
pool.apply_async(calc, (range(n), ))
#pool.map(calc, temp)
pool.close()
pool.join()
end = time.time()
print(end - start)
这是正常代码:
import multiprocessing
import time
def calc(ls):
return [x + 1 for x in ls]
if __name__ == "__main__":
start = time.time()
n = 10000000
data = range(n)
calc(data)
end = time.time()
print(end - start)
它怎么可能发生?我不知道是什么原因。任何人都可以解决。谢谢!