多进程系列:一个进程对应一个函数
这里展示创建两个进程,一个进程用于执行分类模型,另外一个进程用于执行分割模型,以及获取结果的示例。
import multiprocessing
import time
def classify_data(data):
# 这里放置分类任务的代码
print("开始分类:", data)
time.sleep(6) # 模拟分类操作
return f"分类结果: {data}"
def segment_data(data):
# 这里放置数据分割任务的代码
print("开始分割:", data)
time.sleep(5) # 模拟分割操作
return f"分割结果: {data}"
if __name__ == '__main__':
tic = time.time()
# 准备一些数据
data = ["示例数据"]
# 创建一个进程池,这里我们限制最多同时运行2个进程
with multiprocessing.Pool(processes=2) as pool:
# 分类任务
classified_result = pool.apply_async(classify_data, (data,))
# 数据分割任务
segmented_result = pool.apply_async(segment_data, (data,))
# 等待任务完成
classified_result.wait()
segmented_result.wait()
# 获取结果
classified_result = classified_result.get()
segmented_result = segmented_result.get()
print("分类结果:", classified_result)
print("分割结果:", segmented_result)
toc = time.time()
print("time:", toc-tic)
代码执行结果:
# 开始分割: ['示例数据']
# 开始分类: ['示例数据']
# 分类结果: 分类结果: ['示例数据']
# 分割结果: 分割结果: ['示例数据']
# time: 7.008186101913452