title: What does std::thread.join() do?
body: <p>By <a href="http://en.cppreference.com/w/cpp/thread/thread/join" rel="noreferrer">definition from C++ reference</a>:</p>
  
  <blockquote>
    <p>Blocks the current thread until the thread identified by <code>*this</code> finishes its execution.</p>
  </blockquote>
  
  <p>So does this mean when using <code>.join()</code>, there's no need to <code>mutex.lock()</code> when that thread calls some function? I'm new to mutual exclusion and threading, so I'm kind of confused.</p>
  
  <p>Note:  I've found a book 
  C++ Concurrency in Action    and I am reading the book. It is very well written for a beginner on multithreading like me. </p>
  
  <p>Thank you all for the help.</p>