title: C++ std::async does not spawn a new thread
body: <p>C++11</p>
  
  <pre><code>int main(int argc, char** argv) {
      std::async(std::launch::async, [](){ 
          while(true) cout &lt;&lt; "async thread" &lt;&lt;endl; 
      });
      while(true) cout &lt;&lt; "main thread" &lt;&lt; endl;
      return 0;
  }
  </code></pre>
  
  <p>I expected the output should be something interleaved with <code>async thread</code> and    <code>main thread</code> since there should be 2 different threads. </p>
  
  <p>But it's not.</p>
  
  <p>It outputs:</p>
  
  <pre><code>async thread
  async thread
  async thread
  async thread
  ...
  </code></pre>
  
  <p>I guess there's only one thread. Can someone tell me why it isn't spawn a new thread for <code>std::async</code>? Thanks.</p>