public synchronized
int Remove ()
{
while (primeiro == ultimo) {
try { wait(); } // fila vazia
catch (InterruptedException e) {}
}
int ret = buff[primeiro];
primeiro = proximo(primeiro);
notify();
return ret;
}
}
Referências
Capítulo 5 do Galli, seção 3.2 do Tanenbaum, e capítulo 6 do Sinha