> That seems wrong. I should be able to run normal Python code as async, right?<p>No, that is not the case.
To better understand this you should look at an async library, like <a href="https://github.com/aio-libs/aiohttp" rel="nofollow">https://github.com/aio-libs/aiohttp</a>
Look at what it actually calls all the way down under the hood.<p>If it were as simple as adding `asyncio.sleep(0)`, then that library seems as though it would have been much easier to write. :P<p>Just look at the code you posted at the end, it actually runs faster synchronously, without `asyncio.sleep(0)`.
The sleep is what happens async, not the print statements, therefore, all you're doing is introducing delay.<p>Similarly, the Django ORM DB calls you make in the other examples are all still happening synchronously. However, you're just adding a delay that causes them to get picked off in an inconsistent order.