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(); }
/*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++; } }