为什么使用多重处理时速度较慢?

时间:2019-12-23 08:56:38

标签: python

我现在正在学习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)

它怎么可能发生?我不知道是什么原因。任何人都可以解决。谢谢!

0 个答案:

没有答案