When a signal happens on a condition variable that at least one other thread is waiting on, there are at least two threads that could then occupy the monitor: the thread that signals and any one of the threads that is waiting.
In order that at most one thread occupies the monitor at each time, a choice must be made.
Continue reading: Monitors in concurrent computing – 3 of 3