Quem está a fazer o trabalho de PCD do ISCTE, tenha em atenção que os professores não estão a aceitar trabalhos que não tenham wait() e notify() implementados. Convém por isso relembrar resumidamente o seu significado:
Wait() – faz com que uma thread fique em espera até que alguma outra thread invoque o notify() ou notifyAll() para esse objecto;
Notify() – é a forma de “acordar” uma thread que esteja em wait() para que ela prossiga a sua execução.
Podem ver aqui bons exemplos.