Originariamente inviato da Kilin
cioè, in poche parole: ogni thread sarà relativo all'istanza di uno specifico oggetto di una classe che deriva da Thread; se ognuno fa la wait() all'interno del proprio metodo run(), chiama di fatto la wait() sulla specifica istanza che lo ha generato, e dunque se tutti fanno così ciascuno finisce, da solo, in un wait-set diverso.
Esatto. Il notifyAll() che pensavi di mettere nel run() di MioThread non funziona proprio per questo motivo. Se ogni thread fa la wait() sulla sua istanza di MioThread, una notify() sempre sul proprio MioThread non ha alcuna influenza sugli altri thread.