在查看了 Thread/Queue 模型之后,我想问一下如何以类似的方式创建一些东西:
例如,我有 100 个需要处理的项目,但我想一次处理 20 个 - 所以有 20 个插槽,一旦每个插槽都被清空(项目完成处理),下一个插槽将被安置并开始处理。
限制不需要是 20,可以调整(30、50 等)?
感谢您的建议和回答!
在查看了 Thread/Queue 模型之后,我想问一下如何以类似的方式创建一些东西:
例如,我有 100 个需要处理的项目,但我想一次处理 20 个 - 所以有 20 个插槽,一旦每个插槽都被清空(项目完成处理),下一个插槽将被安置并开始处理。
限制不需要是 20,可以调整(30、50 等)?
感谢您的建议和回答!
使用多处理:
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()