title: Is it safe that when Two asyncio tasks access the same awaitable object?
body: <p>Simply speaking, <code>thread-safe</code> means that it is safe when more than one <code>thread</code> access the same resource and I know <code>Asyncio</code> use a single <code>thread</code> fundamentally.</p>
  
  <p>However, more than one <code>Asyncio Task</code> could access a resource multiple time at a time like <code>multi-threading</code>. </p>
  
  <p>For example DB connection(if the object is not <code>thread-safe</code> and supports <code>Asyncio</code> operation).</p>
  
  <ol>
  <li>Schedule <code>Task A</code> and <code>Task B</code> accessing the same DB object. </li>
  <li>IO Loop executes <code>Task A</code>.</li>
  <li><code>Task A</code> <code>await</code> IO operation on the DB object.(it will take long time enough)</li>
  <li>IO Loop executes <code>Task B</code></li>
  <li><code>Step3</code>'s IO operation is still in progress(not done).</li>
  <li><code>Task B</code> <code>await</code> IO operation on the same DB object.</li>
  <li>Now <code>Task B</code> is trying to access the same object at a time. </li>
  </ol>
  
  <p>Is it completely safe in <code>Asyncio</code> and if so, what does it make safe?</p>