如何使用 Python 生成器进行并行计算
要使用Python生成器进行并行计算,可以使用Python内置的multiprocessing模块,其中有一个Pool类,它可以创建进程池来并行执行函数。下面是一个简单的示例,该示例使用4个进程计算pidancode.com到皮蛋编程的哈希值:
import hashlib from multiprocessing import Pool def calculate_hash(string): """计算字符串的哈希值""" return hashlib.md5(string.encode()).hexdigest() if __name__ == '__main__': # 要计算哈希的字符串列表 strings = ['pidancode.com', '皮蛋编程'] # 创建进程池,指定进程数为4 pool = Pool(processes=4) # 计算字符串的哈希值,并将结果存储在列表中 hash_values = pool.map(calculate_hash, strings) # 关闭进程池 pool.close() pool.join() # 打印结果 print(hash_values)
在这个例子中,calculate_hash函数计算输入字符串的哈希值,map方法将calculate_hash函数应用到strings列表中的每个字符串,并将结果存储在hash_values列表中。这个过程使用了4个进程来并行计算哈希值。最后,程序输出计算出的哈希值。
注意,在使用multiprocessing模块时,要确保在主模块中的if name == 'main'条件下调用进程池,这样可以避免在子进程中无限递归地调用该模块。
以上就是使用Python生成器进行并行计算的一个简单示例,您可以根据需要进行调整和扩展。
相关文章