Yes, it's a standard idiom of continuations to implement coroutines with them. One virtue of using kernel threads is in principle the kernel threads can take advantage of multiple hardware CPU's. Python's global interpreter lock stops that from happening, but I thought there was some hope the lock might go away someday.