//Trabalho Final Sistemas Operacionais
        //Exercício 6.3
        //Data: 29/05/2018
        //Grupo: Alessandra Faria, Cleuba Alves, Lucas Amancio, Mirella Avelino e Yanna Paula
        //Descrição: Problema do barbeiro adormecido utilizando monitor.

        static void Main(string[] args)
        {
            Console.WriteLine("********************************************************");
            Console.WriteLine("Exercício 6.3 - Barbeiro Adormecido com Monitor");
            Console.WriteLine("Grupo: Alessandra Faria Abreu 573831\nCleuba Alves Ribeiro612542\nLucas Amancio Mantini 590982\nMirella Avelino Soares 590983\nYanna Paula Araújo Silva 601282");
            Console.WriteLine("********************************************************");



            Random random = new Random();

            //Cria instância da classe barbearia
            Barbearia barbearia = new Barbearia();

            //Cria instância da classe cliente
            Cliente cliente = new Cliente(barbearia, random);
            //Cria instância da classe barbeiro
            Barbeiro barbeiro = new Barbeiro(barbearia, random);

            // Inicializa todas suas threads
            Thread threadCliente = new Thread(new ThreadStart(cliente.adicionar));

            threadCliente.Name = "Cliente";
            Thread threadBarbeiro = new Thread(new ThreadStart(barbeiro.cortar));

            threadBarbeiro.Name = "Barbeiro";

            //Inicia execução
            threadCliente.Start();
            threadBarbeiro.Start();

            Console.ReadKey();
        }
 //Instancia
 public Cliente(Barbearia b, Random random)
 {
     this.barber          = b;
     this.randomSleepTime = random;
 }
 // Instancia
 public Barbeiro(Barbearia b, Random random)
 {
     this.barber          = b;
     this.randomSleepTime = random;
 }