The Sleeping Barber | O Barbeiro Dorminhoco

This is a programming project in the Java language that portrays another well-known problem in the study of Concurrent Systems: The Sleeping Barber.

The problem presented is built on a barbershop with only one barber working on only one barber's chair and five chairs for customers.

Well, as a matter of common sense, ins't the most adequate to more than one customers sit on barber's chair to have a cut. So we need to guarantee that only one customer will be served at time and also guarantee that if all of the five chairs are filled by customers, any other should leave and come back after.

Besides, our barber also work with Java programming in free time (at night, specifically), so... well, sleep is something he has in abundance. That's why he always take the oportunitty to sleep a bit on his chair when any customer is waiting to be served.

That said, our barbershop should be work that way: our barber always serving a customer when there's at least one to be served. He also can take a nap when there is no one waiting. Also, if all chairs are occupied, new customers should leave and return after.

So, once again you are invited to test the program and observe in practice the barbershop of our sleeping barber in its standard configuration or in the one you wish to establish through the control panels.

------------------------------------------------------------------------------------------------------------------------------------------------------------

Este é um projeto de programação na linguagem Java que retrata outro problema bastante conhecido no estudo de Sistemas Concorrentes: O Barbeiro Adormecido.

O problema apresentado é construído em uma barbearia com apenas um barbeiro trabalhando em apenas uma cadeira de barbeiro e cinco cadeiras para clientes.

Bom, por uma questão de bom senso, não é o mais adequado que mais de um cliente se sente na cadeira do barbeiro para fazer um corte. Portanto, precisamos garantir que apenas um cliente será atendido por vez e também garantir que se todas as cinco cadeiras estiverem ocupadas por clientes, qualquer outro deverá sair e voltar depois.

Além disso, nosso barbeiro também trabalha com programação Java nas horas vagas (à noite, especificamente), então... bom, dormir é algo que ele tem em abundância. É por isso que ele sempre aproveita para dormir um pouco em sua cadeira quando algum cliente está esperando para ser atendido.

Dito isto, nossa barbearia deveria funcionar dessa forma: nosso barbeiro sempre atendendo um cliente quando há pelo menos um para ser atendido. Ele também pode tirar uma soneca quando não há ninguém esperando. Além disso, se todas as cadeiras estiverem ocupadas, novos clientes deverão sair e retornar depois.

Assim, mais uma vez você está convidado a testar o programa e observar na prática a barbearia do nosso barbeiro adormecido na sua configuração padrão ou naquela que deseja estabelecer através dos painéis de controle.

------------------------------------------------------------------------------------------------------------------------------------------------------------