Paulo Borba
Centro de Informática
Universidade Federal de Pernambuco
Recife, 2 de agosto de 2004
Implemente em Java a classe GerenciadorDeConcorrencia, tendo um array de strings como atributo e dois métodos: reservarString e liberarString. Os dois métodos recebem uma string como parâmetro e verificam se ela está armazenada no array. Se a string não estiver no array, o primeiro método armazena a string no array, caso contrário ele deve esperar até que a string seja retirada do array. O segundo método retira a string do array, caso ela esteja lá; caso contrário, ele lança uma exceção. Assuma que os métodos de inserção (inserir) e remoção (remover) no array já foram definidos. Não precisa definir a classe da exceção. Note que vários threads podem estar usando um mesmo objeto desta classe ao mesmo tempo.