``++notify++`` and ``++notifyAll++`` both wake up sleeping threads, but ``++notify++`` only rouses one, while ``++notifyAll++`` rouses all of them. Since ``++notify++`` might not wake up the right thread, ``++notifyAll++`` should be used instead. == Noncompliant Code Example ---- class MyThread extends Thread{ @Override public void run(){ synchronized(this){ // ... notify(); // Noncompliant } } } ---- == Compliant Solution ---- class MyThread extends Thread{ @Override public void run(){ synchronized(this){ // ... notifyAll(); } } } ---- == See * https://wiki.sei.cmu.edu/confluence/x/MTdGBQ[CERT, THI02-J.] - Notify all waiting threads rather than a single thread