Proposed by: Kaustubh Maske Patil

Concurrency in a single thread: building asyncio in Python from scratch

Concurrency is the buzzword for high performance applications these days. It is not very well understood because it's obscure. In this talk, we will use generators in Python, a relatively well-known construct, to see if we can understand concurrency by building asyncio (Python's way of running tasks concurrently without creating multiple threads).

Similar ideas that also make use of multiple OS threads are popular and present in other languages such as Go and now OCaml and C++.

In this talk, we will go over:

  1. Concurrency without parallelism
  2. Understanding I/O, and asynchronous I/O
  3. Pausing and resuming generators -- we get a coroutine
  4. A simple event loop

Source code/Reference:

Talk duration: