title: kotlin coroutines - use main thread in run blocking
body: <p>I am trying to execute following code:</p>
  
  <pre><code> val jobs = listOf(...)
   return runBlocking(CommonPool) {
      val executed = jobs.map {
          async { it.execute() }
      }.toTypedArray()
      awaitAll(*executed)
   }
  </code></pre>
  
  <p>where <code>jobs</code> is the list of some <code>Supplier</code>s - in synchronus world this should just create, for example, list of ints.
  Everything works fine, but the problem is the main thread is not utilized. Bellow screenshot from YourKit:
  <a href="https://i.stack.imgur.com/YnEdW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/YnEdW.png" alt="enter image description here"></a></p>
  
  <h3>So, the question is - how can I utilize main thread also?</h3>
  
  <p>I suppose <code>runBlocking</code> is the problem here, but is there other way to receive the same result? With Java parallel stream it looks far more better, but the main thread is still not utilized entirely (tasks are totally independent).</p>
  
  <h2>UPDATE</h2>
  
  <p>Ok, maybe I have told you too few things.
  My questions came some time after watching Vankant Subramaniam presentation : <a href="https://youtu.be/0hQvWIdwnw4" rel="nofollow noreferrer">https://youtu.be/0hQvWIdwnw4</a>. 
  I need maximum performance, there is no IO, no Ui etc. Only computations. There is only request and I need to use all my available resources. </p>
  
  <p>One think which I have is to set paralleizm to thread count + 1, but I think it is rather silly. </p>