【发布时间】:2018-03-09 02:55:33
【问题描述】:
现在我有一些代码大致执行以下操作
def generator():
while True:
value = do_some_lengthy_IO()
yield value
def model():
for datapoint in generator():
do_some_lengthy_computation(datapoint)
现在,I/O 和计算是串行发生的。理想情况下,应该同时运行并行(生成器已经准备好下一个值),因为它们只共享传递的值。我开始研究这个并且对multiprocessing、threading 和async 的东西感到非常困惑,并且无法得到一个最小的工作示例。此外,由于其中一些似乎是最近的功能,所以我使用的是 Python 3.6。
【问题讨论】:
-
如果你在python3.5+,你可以看看asyncIO。对于旧版本,可以使用队列进行多处理。
-
恕我直言,这是一个经典的“just”-
[CONCURRENT]进程调度,到目前为止不是真正的-[PARALLEL]processing 系统,请查看帖子>>> stackoverflow.com/revisions/8337936/4 并可能希望修改/编辑已声明的问题公式,以更好地满足计算机科学与复杂系统和进程调度术语。 -
给我们一个简单的、独立的、完整的例子,而不是一个模糊的伪例子。如所问,这个问题过于宽泛,无法以这种格式合理回答。
标签: python asynchronous concurrency multiprocessing