Tomando por base um problema clássico de comunicação entre processos, esta aplicação implementa uma solução com n barbeiros trabalhando simultaneamente em uma barbearia com m assentos para os clientes que estão esperando que algum barbeiro os atenda. Quando um cliente chega à barbearia ele verifica se ela está lotada ou não. Se a barbearia estiver lotada (se todos os n barbeiros estiverem atendendo clientes e se todos os m assentos estiverem ocupados), ele sai sem ter seu cabelo cortado. Se a barbearia não estiver lotada, ele entra e espera pelo corte do seu cabelo.