liam0205.github.io icon indicating copy to clipboard operation
liam0205.github.io copied to clipboard

Python 中的黑暗角落(二):生成器协程的调度问题 | 始终

Open Liam0205 opened this issue 6 years ago • 3 comments

https://liam.page/2017/06/30/generator-coroutine-in-python-basic-topics/

前作介绍了 Python 中的 yield 关键字。此篇介绍如何使用 yield 表达式,在 Python 中实现一个最基本的协程调度示例,避免 I/O 操作占用大量 CPU 计算时间。

Liam0205 avatar Jan 12 '19 09:01 Liam0205

写的非常好,获益良多,实现思路我猜和python3.5之前用yield from 和 asynic.io 的event_loop调度器差不多~~

huanghe314 avatar Aug 18 '19 10:08 huanghe314

@huanghe314 嗯,是这个样子。

Liam0205 avatar Aug 19 '19 01:08 Liam0205

真不错,让我理解了基于生成器实现的协程的调度问题,只不过有一个疑问:协程适合IO密集型的场景,假设有一个读文件操作,文件很大,需要1分钟才能读完,那么这个操作在协程调度器中运行时怎么避免它阻塞主线程1分钟呢? 是新开一个线程吗?

ApexPredator1 avatar Aug 10 '21 13:08 ApexPredator1