title: Does a thread start immediately
body: <p>I just started reading C++ Concurrency In Action 2012. In Chapter 2, it shows a thread being invoked and joined. With the join not being an atomic operation with thread creation. By this I mean that the thread is started with <code>std:thread t(...)</code> and in a succeeding line a <code>join</code> is performed. My assumption is that when a thread is created it can begin executing at any time, including at once. And if it begins executing at once and terminates before the creating program begins executing, then the <code>join</code> fails.</p>
  
  <p>The same issue occurs when if <code>t.joinable()</code> is used.</p>
  
  <p>If my guess is correct then there is no guarantee that a <code>join</code> can ever be successful and the <code>joinable()</code>predicate does not help. What am I missing?</p>