The task system uses a thread pool as well as an ioloop. So tasks can be normal functions as well as `async def` functions/coroutines.
You can also pass in a custom executor and use processes instead of threads.
Thanks for the feedback wrt docs app.
You can also pass in a custom executor and use processes instead of threads.
Thanks for the feedback wrt docs app.