title: GlobalScope vs CoroutineScope vs lifecycleScope
body: <p>I am used to working with <code>AsyncTask</code> and understand it pretty well due to its simplicity. But <code>Coroutines</code> are confusing to me. Can you please explain to me in a simple way what is the difference and purpose of each of the following?</p>
  <ol>
  <li><code>GlobalScope.launch(Dispatchers.IO) {}</code></li>
  <li><code>GlobalScope.launch{}</code></li>
  <li><code>CoroutineScope(Dispatchers.IO).launch{}</code></li>
  <li><code>lifecycleScope.launch(Dispatchers.IO){}</code></li>
  <li><code>lifecycleScope.launch{}</code></li>
  </ol>