This creates a future
loop.run_in_executor(None, some_fn)
This creates a task
asyncio.create_task(some_fn())
What is the difference between the two?
According to my understanding:
The former spins up another thread and executes the function (which is typically IO-bound) concurrently.
The latter creates a task within the same thread and executes the function concurrently.
Is this correct? The documentation isn't really helpful in understanding the differences between the two.