如何解决使用 python 多处理实现预取
我想使用 python
的多处理为自定义类实现预取功能。
假设我们有以下类 Sequence
,它可以通过使用索引和 __getitem__
方法获取批量数据
class Sequence:
def __init__(self):
""" class initialization """
def __getitem__(self,idx):
""" get data by index,this step may cost some time """
和一个非常耗时的函数 run_experiment
来处理 Sequence
返回的数据。
通常我会使用 for-loop
如下
for i in range(1000):
data = Sequence[i]
output = run_experiment(data)
但是,由于 run_experiment
很耗时,我希望 Sequence
可以在 run_experiment
仍在运行时预先准备一些数据以备将来使用。幼稚的想法是使用queue
提前收集Sequence
返回的数据,直接从queue
获取数据馈送run_experiment
。但是,我不知道如何在 Sequence
中实现此类功能,同时又不对其 API 进行太多更改。我只需要一个简单的演示解决我的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。