如何“多重处理” itertools产品模块?

如何“多重处理” itertools产品模块?,第1张

如何“多重处理” itertools产品模块?

将产品分解成一个部分的一种方法是分解产品的第一个组成部分,以便每个独立的作业都具有从一组特定的首字母开头的所有元素。例如:

import stringimport multiprocessing as mpimport itertoolsalphabet = string.ascii_letters+string.digits+"!@#$%^&*?,()-=+[]/;"num_parts = 4part_size = len(alphabet) // num_partsdef do_job(first_bits):    for x in itertools.product(first_bits, alphabet, alphabet, alphabet):        print(x)if __name__ == "__main__":    pool = mp.Pool()    results = []    for i in xrange(num_parts):        if i == num_parts - 1: first_bit = alphabet[part_size * i :]        else: first_bit = alphabet[part_size * i : part_size * (i+1)]        results.append(pool.apply_async(do_job(first_bit)))    pool.close()    pool.join()

(显然,您仅

results
do_job
实际返回某些内容时才使用)。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5674247.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存