Relatorio Trabalho Threads
AILTON CARDOSO JUNIOR
Programa de computador paralelo usando Java
UNIVALI – Curso de Ciência da Computação
Disciplina: Arquitetura E Organização De Computadores
Prof. Fabrício Bortoluzzi
ITAJAÍ (SC) – 4 de dezembro de 2014
Relatório
Atividade proposta
A atividade proposta foi de criarmos um programa em Java ou C++ que disparassem 5 threads fazendo 1000(Mil) depósitos cada uma em uma mesma conta (Saldo) ou seja, 5000(Cinco Mil) depósitos e que fosse totalmente de forma paralela.
Experimento
Fiz o experimento criando um simples programa em Java, onde criei
3 classes “Conta”, “Depositante” e “Main”, no qual a conta só guardaria os valores do Saldo, o Depositante é quem dispararia uma Thread cada vez que fosse criado e chamado o método “Start”, porem dentro de cada uma das Threads eu estava dando uma saída para o console mostrando o atual saldo para ir acompanhando o processo, foi onde eu obtinha sempre um resultado muito próximo(4998) ou exatamente a 5000.
Conclusão
Após analisar o código e conversar com alguns amigos cheguei à conclusão que a saída para o console dentro da própria Thread fazia com a
Thread ficava ocupada imprimindo o valor no console enquanto a próxima
Thread pegava o valor correto do saldo e incrementava +1, dando a falsa ideia que não havia problema com o paralelismo nessa forma de programar.
Resolvi então tirar a impressão no console e então tive o resultado esperado que era um corrompimento na variável saldo. E então a única saída foi uma mensagem no final de todo o processo com o saldo total após os 5 mil
depósitos.