Vi um exmeplo de Produtor / Consumidor utilizando thread… mas fiquei com uma duvida.
class buffer{
…
pubic void set (int value){
while(!isEmpty){
canWrite.await();
}
}
}
A thread entrará em estado de espera quando o buffer nao estiver vazio. Assim que a consumidora ler o buffer ela chamará canWrite.signal, e setará isEmpty para true e a thread produtora continuará…
Minha duvida é a seguinte… Por que preciso de um loop (WHILE), Se implementasse com um IF nao funcionaria?
Ex: o buffer tá cheio, a thread produtora entra em espera… O consumidor esvazia o buffer e dá um canWrite.signal… Pra que o uso do WHILE??
obrigado!