
A Curious Course on Coroutines and Concurrency (2009) [pdf] - avyfain
http://dabeaz.com/coroutines/Coroutines.pdf
======
pixelmonkey
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".

[https://www.youtube.com/watch?v=5-qadlG7tWo](https://www.youtube.com/watch?v=5-qadlG7tWo)

~~~
vive-la-liberte
Don't think I've seen a talk that long held at any conference before.

~~~
notdonspaulding
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.

------
amelius
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).

~~~
qu4z-2
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.

~~~
srean
>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.

