title: std::mutex::lock blocking CPU usage
body: <p>I want to be able to freeze and unfreeze a thread at will.<br>
  My current solution is done through callbacks and busy waiting with sleep. 
  This is obviously not an optimal solution.</p>
  
  <p>I'm considering having the main thread lock a mutex, then have the slave thread run a function that locks and unlocks the same mutex.<br>
  My worry is the possible CPU usage if it's a true busy wait.<br>
  My question, as such, is: how does STL in C++11 specify "blocking", and if it is a busy wait, are there less CPU intensive solutions (e.g. pthreads)?</p>