musuem of internet stuff
A condition variable is a synchronization primitive that allows multiple threads to communicate with each other. It allows some of number of threads to wait (possibly with a timeout) for notification from another thread that they may proceed. A condition variable is always associated with a mutex.