title: Why Kotlin coroutines run in the same thread sequentially?
body: <p>I thought that calling a "suspend" function from coroutine context using <code>launch</code> makes the call asynchronous. But in the example below I see that 2 invocations of <code>placeOrder</code> method are not running in the same thread one after another.
  What is my mistake?</p>
  
  <pre><code>import kotlinx.coroutines.launch
  import kotlinx.coroutines.runBlocking
  import java.io.File
  
  fun main() = runBlocking {
      t("1")
      launch {
          t("2")
          placeOrder("C:\\Users")
          t("3")
      }
      launch {
          t("12")
          placeOrder("C:\\Program Files")
          t("13")
      }
      t("4")
  }
  
  
  fun t(s: String) {
      val currentThread = Thread.currentThread()
      println(s + ": " + currentThread.name + " " +     currentThread.id)
  }
  
  suspend fun placeOrder(d:String): String {
      t("placeOrder $d")
      val user = createUser(d) // asynchronous call to user service
      val order = createOrder(user) // asynchronous call to order service
      t("placeOrder $d finished")
      return order
  }
  
  suspend fun createUser(d:String): String {
      t("createUser $d")
      val toString = File(d).walk().map {
          it.length()
      }.sum().toString()
      t("createUser $d finished")
      return toString
  }
  
  suspend fun createOrder(user: String): String {
      t("createOrder $user")
      val toString = File("C:\\User").walk().map {
          it.length()
      }.sum().toString()
      t("createOrder $user finished")
      return toString
  }
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>1: main 1
  4: main 1
  2: main 1
  placeOrder C:\Users: main 1
  createUser C:\Users: main 1
  createUser C:\Users finished: main 1
  createOrder 1094020270277: main 1
  createOrder 1094020270277 finished: main 1
  placeOrder C:\Users finished: main 1
  3: main 1
  12: main 1
  placeOrder C:\Program Files: main 1
  createUser C:\Program Files: main 1
  createUser C:\Program Files finished: main 1
  createOrder 5651227104: main 1
  createOrder 5651227104 finished: main 1
  placeOrder C:\Program Files finished: main 1
  13: main 1
  </code></pre>