Many waiting software threads wake for a state change that can benefit only one or a few of them. Repeated monitor reacquisition, failed predicate checks and context switches add overhead; selective notification can reduce it.
New to topics? Read the docs here!