== Why is this an issue? `notify` and `notifyAll` both wake up sleeping threads waiting on the object's monitor, but `notify` only wakes up one single thread, while `notifyAll` wakes them all up. Unless you do not care which specific thread is woken up, `notifyAll` should be used instead. === Noncompliant code example [source,java,diff-id=1,diff-type=noncompliant] ---- class MyThread implements Runnable { Object lock = new Object(); @Override public void run() { synchronized(lock) { // ... lock.notify(); // Noncompliant } } } ---- === Compliant solution [source,java,diff-id=1,diff-type=compliant] ---- class MyThread implements Runnable { Object lock = new Object(); @Override public void run() { synchronized(lock) { // ... lock.notifyAll(); } } } ---- == Resources * https://wiki.sei.cmu.edu/confluence/x/MTdGBQ[CERT, THI02-J.] - Notify all waiting threads rather than a single thread ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message "notify" may not wake up the appropriate thread. ''' == Comments And Links (visible only on this page) === relates to: S3046 endif::env-github,rspecator-view[]