Python的并行编程:multiprocessing与concurrent.futures
import multiprocessing
import concurrent.futures
# 使用multiprocessing的例子
def multiprocessing_example(nums):
with multiprocessing.Pool(processes=4) as pool:
result = pool.map(square, nums)
print(f"使用multiprocessing: {result}")
# 使用concurrent.futures的例子
def concurrent_futures_example(nums):
with concurrent.futures.ProcessPoolExecutor(max_workers=4) as executor:
result = {executor.submit(square, num): num for num in nums}
for future in concurrent.futures.as_completed(result):
num = result[future]
try:
print(f"{num}的平方是: {future.result()}")
except Exception as e:
print(f"{num}计算过程中出错: {e}")
# 定义一个计算平方的函数
def square(num):
return num * num
# 测试函数
if __name__ == "__main__":
nums = [1, 2, 3, 4, 5]
multiprocessing_example(nums)
concurrent_futures_example(nums)
这个代码示例展示了如何使用Python的multiprocessing
和concurrent.futures
模块来进行并行编程。multiprocessing_example
函数使用了multiprocessing.Pool
来创建进程池,并行处理一个简单的计算平方的任务。concurrent_futures_example
函数使用了concurrent.futures.ProcessPoolExecutor
来执行类似的操作,并展示了如何处理异步结果。
评论已关闭