python中的多处理槽

时间:2013-07-11 15:28:06

标签: python multiprocessing

在查看了Thread / Queue模型之后,我想问一下如何以类似的方式创建一些东西:

例如,我有100个需要处理的项目,但我想一次处理20个 - 所以有20个插槽,一旦每个插槽被清空(项目完成处理),下一个就会坐下并开始处理。

限制不需要是20,可以调整(30,50等)?

感谢您的建议和解答!

1 个答案:

答案 0 :(得分:2)

使用multiprocessing

import multiprocessing
import time

def process(x):
    time.sleep(1)
    return x

if __name__ == '__main__':
    jobs = range(100)
    pool = multiprocessing.Pool(20)
    for result in pool.imap_unordered(process, jobs):
        print(result)
    pool.close()
    pool.join()