UFSM
>
Informática
>
ELC117 - Paradigmas de Programação
Exercícios
- O programa OperacoesBancarias.java cria 2 threads que atualizam concorrentemente o saldo de uma conta bancária. Qual deve ser o resultado deste programa? Compile e execute o programa, observando se o resultado obtido é igual ao esperado.
- Modifique o programa do exercício acima de modo a esperar pelo término das threads criadas. Utilize o método join da classe Thread (lembre que este método exige o tratamento de uma exceção).
- O programa ExThreadsABC.java ilustra o uso de threads em Java. Esse programa não controla o acesso concorrente aos dados compartilhados. Para verificar o que pode dar errado, compile esse programa e execute-o diversas vezes, comparando os resultados das diferentes execuções.
No Linux, você pode usar o script repete-execucao.sh, que executa um programa repetidamente e pára se os resultados de 2 execuções consecutivas forem diferentes. Exemplo de uso:
bash ./repete-execucao.sh 50 java ExThreadsABC
- Corrija o programa do exercício anterior, usando um método
synchronized
(onde deve ser usada essa palavra-chave?).
Material de Apoio
Página criada em: Sun Jul 3 14:11:05 BRT 2011.
Última atualização em: Tue Jul 5 09:54:48 2011.
Autoria: Andrea Schwertner Charão.