gpt4 book ai didi

Python 多处理循环

转载 作者:太空宇宙 更新时间:2023-11-04 00:22:03 25 4
gpt4 key购买 nike

我希望使用 multiprocessing 来加速缓慢的循环。但是,根据我所看到的多处理示例,我不确定这种实现是否是好的做法、是否可行或可能。

循环大致分为两部分:数据摄取数据处理。我希望在处理过程中开始下一部分数据摄取,以便数据尽快可用。

伪代码:

d = get_data(n)
for n in range(N):
p = process_data(d)
d = get_data(n+1) #prepare data for next process loop
  1. 多处理适合这种功能吗?
  2. 如何做到这一点?

提前致谢。

最佳答案

如您所说,多处理基本上是分派(dispatch)和收集工作。正如您所阐明的,您基本上希望 process_dataget_data 并行工作。

这是我的解决方案

import multiprocessing as mp

# create pool for dispatching work
pool = mp.Pool()

# call your functions asynchronously
process_data_process = pool.apply_async(process_data, (d,))
get_data_process = pool.apply_async(get_data, (n+1,))

# After your functions are dispatched, wait for results
process_data_result = process_data_process.get()
get_data_result = get_data_process.get()

# Note: get_data_result will not be fetched till process_data_result is ready
# But that should be fine since you can't start the next batch
# till this batch is done

你可以把它包装在你的循环中。希望这能回答您的问题!

关于Python 多处理循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48778842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com