Condition Variables

The classic thread synchronization objects are Mutex, Semaphore, and Condition Variable.

Windows always has Mutex and Semaphore.

Now in Windows Vista, you can also use Condition Variable.

Using Condition Variables
https://msdn.microsoft.com/library/en-us/dllproc/base/using_condition_variables.asp