コード例 #1
0
        static void Main()
        {
            /* Aula introdutoria
             *  int quantidadeVezes = 100;
             *
             *  for(int contador = 1; contador <= quantidadeVezes; contador++){
             *      Console.WriteLine(" Contador: " + contador + " Quantidade de vezes: " +  quantidadeVezes);
             *      Console.WriteLine($" Contador: {contador} Quantidade de vezes: {quantidadeVezes}");
             *  }
             *
             *  Console.WriteLine("/");
             */

            /* Aula Pilha
             * var pilha = new Pilha();
             *
             * pilha.Empilha(2);
             * pilha.Empilha(3);
             * pilha.Empilha(1);
             *
             * Console.WriteLine(pilha.Desempilha());
             * Console.WriteLine(pilha.Desempilha());
             * Console.WriteLine(pilha.Desempilha());
             *
             * // Testar o exception
             * // Console.WriteLine(pilha.Desempilha());
             *
             */

            /* Fila */
            var fila       = new Fila();
            var nomeMusica = "Dont stop the music";

            fila.Enfileirar(nomeMusica);

            nomeMusica = "Como eu quero";
            fila.Enfileirar(nomeMusica);

            fila.Desenfileirar();
            fila.Desenfileirar();
        }
コード例 #2
0
        /*Metodo que simula a requisição feita ao Servidor Web.*/
        static void CriarRequisicao(int id)
        {
            /*Se a fila possuir algum valor significa que há uma posição vazia, então é gerada uma requisição
             * caso contrário a requisição é negada.*/
            if (!fila.Vazia())
            {
                atendidas++;
                /*Cada requisição possui como ID o indice da fila que esta "desocupado".*/
                Requisicao requisicao = new Requisicao(id, fila.Desenfileirar());

                /*O índice "desocupado" corresponde a posição desocupada no pool. Cria-se uma thread para atender a requisição
                 * e a starta logo em seguida.*/
                pool[requisicao.indice] = new Thread(requisicao.Requerir);
                pool[requisicao.indice].Start();
            }
            else
            {
                /*Contador de requisições que foram perdidas, pois o pool de requisições estava cheio.*/
                perdidas++;
            }
        }