An oldie but goodie. Beazley did a follow-up to this at PyCon 2014, a 3-hour tutorial on generators. Very much worth a watch! It's called "Generators: The Final Frontier".
Pycon tutorials are held before the main conference at an extra charge for topics that are better suited to be taught over a longer period of time than will fit in a regular 30-45 minute talk session.
Nice course, but only if your platform supports the underlying concepts.
For instance, does Python still have the Global Interpreter Lock (GIL) issue? It is the reason Python was (at least once) unsuited for concurrent programming.
It was still better than NodeJS which has no intra-process threading; and generators (coroutines) are also not fully supported (no yielding allowed within functions called from a generator).
As a non-Python user (well, I've dabbled)... Is the GIL an issue for concurrency as well as parallelism? I would've thought that for things like coroutines the GIL wouldn't be a problem, but I could be wrong.
You aren't. Concurrency is a code-design/code-meaning issue. It has nothing to do with runtime execution. For example nice concurrency primitives lets you avoid callback hell.
https://www.youtube.com/watch?v=5-qadlG7tWo