ATPS Programação Concorrente
Por: adrianosanttos • 4/5/2015 • Projeto de pesquisa • 667 Palavras (3 Páginas) • 493 Visualizações
Introdução
Este trabalho traz alguns conceitos sobre Programação Concorrente. Descrevendo de maneira simples e objetiva todo conteúdo solicitado durante a etapa 1 da ATPS.
Etapa 1
Passo 1
Realização da leitura dos conteúdos citados na ATPS.
Passo 2
Baseados nas leituras do Passo 1, foi criado agentes baseados em thread na linguagem Java, para que consumam, de um buffer de 5000 posições cada um dos pedidos, como citado no passo 2.
O algoritmo foi criado na linguagem Java.
[pic 1]
[pic 2]
[pic 3]
[pic 4]
No código acima, quando instanciado o objeto da classe “Principal”, é passada a quantidade de threads que a aplicação deverá operar, nesse caso, iria operar com 50 threads.
Passo 3
A aplicação foi executada 10 vezes para cada teste de threads solicitadas nesse passo, para assim, verificarmos o quanto é eficaz seu uso.
Ilustração do modo de saída no IDE Netbeans:
[pic 5]
Para esse passo, foi implementado um laço de repetição (do while), assim, realizando as 10 execuções, para obtenção dos resultados listados abaixo.
[pic 6]
Alteração no código.
- No primeiro caso, foram utilizadas 1000 threads para verificarmos o comportamento da aplicação.
1ª Execução - Tempo Total Processado: 6566 Milissegundos
2ª Execução - Tempo Total Processado: 6063 Milissegundos
3ª Execução - Tempo Total Processado: 6046 Milissegundos
4ª Execução - Tempo Total Processado: 6055 Milissegundos
5ª Execução - Tempo Total Processado: 6059 Milissegundos
6ª Execução - Tempo Total Processado: 6058 Milissegundos
7ª Execução - Tempo Total Processado: 6158 Milissegundos
8ª Execução - Tempo Total Processado: 6043 Milissegundos
9ª Execução - Tempo Total Processado: 6043 Milissegundos
10ª Execução - Tempo Total Processado: 6042 Milissegundos
[pic 7]
Tempo Médio: 6113,3.
- No segundo caso, foram utilizadas 500 threads.
1ª Execução - Tempo Total Processado: 11062 Milissegundos
2ª Execução - Tempo Total Processado: 11048 Milissegundos
3ª Execução - Tempo Total Processado: 10196 Milissegundos
4ª Execução - Tempo Total Processado: 10172 Milissegundos
5ª Execução - Tempo Total Processado: 11038 Milissegundos
6ª Execução - Tempo Total Processado: 10236 Milissegundos
7ª Execução - Tempo Total Processado: 10198 Milissegundos
8ª Execução - Tempo Total Processado: 11054 Milissegundos
9ª Execução - Tempo Total Processado: 11040 Milissegundos
10ª Execução - Tempo Total Processado: 10165 Milissegundos
[pic 8]
Tempo Médio: 10620,9.
- No terceiro caso, foram utilizadas 100 threads.
1ª Execução - Tempo Total Processado: 51161 Milissegundos
2ª Execução - Tempo Total Processado: 50082 Milissegundos
3ª Execução - Tempo Total Processado: 50080 Milissegundos
4ª Execução - Tempo Total Processado: 50123 Milissegundos
5ª Execução - Tempo Total Processado: 50073 Milissegundos
6ª Execução - Tempo Total Processado: 50119 Milissegundos
7ª Execução - Tempo Total Processado: 50154 Milissegundos
8ª Execução - Tempo Total Processado: 50079 Milissegundos
9ª Execução - Tempo Total Processado: 50139 Milissegundos
10ª Execução - Tempo Total Processado: 50109 Milissegundos
[pic 9]
Tempo Médio: 50211,9.
- No quarto caso, foram utilizadas 50 threads.
1ª Execução - Tempo Total Processado: 100497 Milissegundos
2ª Execução - Tempo Total Processado: 101290 Milissegundos
3ª Execução - Tempo Total Processado: 100172 Milissegundos
4ª Execução - Tempo Total Processado: 100312 Milissegundos
5ª Execução - Tempo Total Processado: 101234 Milissegundos
6ª Execução - Tempo Total Processado: 100235 Milissegundos
7ª Execução - Tempo Total Processado: 100098 Milissegundos
8ª Execução - Tempo Total Processado: 100355 Milissegundos
9ª Execução - Tempo Total Processado: 100798 Milissegundos
...