Paulo Borba
Centro de Informática
Universidade Federal de Pernambuco
Recife, 14 de julho de 2003
Altere a classe abaixo para que ela seja segura em um ambiente concorrente. Em particular, garanta que o método colocar só coloca um elemento no buffer caso ele esteja vazio (elemento for null); se o buffer não estiver vazio, o método colocar deve ficar esperando até que o elemento do buffer seja retirado. Similarmente, garanta também que o método pegar só retorna um elemento caso o buffer não esteja vazio; se o buffer estiver vazio, o método pegar deve ficar esperando até que seja inserido um elemento no buffer.
class Buffer {Object pegar() {
Object tmp = elemento;
elemento = null;
return tmp;
}
}