首页 > 解决方案 > 如何在这段代码中实现多处理?

问题描述

我正在尝试为下面的代码实现多处理,似乎没有什么对我有用。模式和输出是包含数十万个元素的列表。

 for pat in patterns:
        for seq in [output[x] for x in range(0, len(output)) if x % 2 != 0]:
            freq = freq + get_count(seq, pat)
        freq_dict[pat] = freq
        freq = 0

任何形式的帮助将不胜感激。

标签: pythonloopsfor-loopmultiprocessing

解决方案


尝试这个:

import concurrent  

def add_pattern(pat):
    for seq in [output[x] for x in range(0, len(output)) if x % 2 != 0]:
        freq = freq + get_count(seq, pat)
    freq_dict[pat] = freq
    freq = 0

with concurrent.futures.ProcessPoolExecutor() as executor:
    executor.map(add_pattern, patterns)

推荐阅读