title: What's the difference between loop.create_task, asyncio.async/ensure_future and Task?
body: <p>I'm a little bit confused by some <code>asyncio</code> functions. I see there is <a href="https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.BaseEventLoop.create_task"><code>BaseEventLoop.create_task(coro)</code></a> function to schedule a co-routine. The documentation for <code>create_task</code> says its a new function and for compatibility we should use <a href="https://docs.python.org/3/library/asyncio-task.html#asyncio.async"><code>asyncio.async(coro)</code></a> which by referring to docs again I see is an alias for <a href="https://docs.python.org/3/library/asyncio-task.html#asyncio.ensure_future"><code>asyncio.ensure_future(coro)</code></a> which again schedules the execution of a co-routine.</p>
  
  <p>Meanwhile, I've been using <a href="https://docs.python.org/3/library/asyncio-task.html#asyncio.Task"><code>Task(coro)</code></a> for scheduling co-routine execution and that too seems to be working fine. so, what's the difference between all these?</p>