Programação Concorrente em Laboratório
Por: Ednelso245 • 4/3/2018 • 752 Palavras (4 Páginas) • 315 Visualizações
...
2. Qual é a seção crítica do código?
3. Compile o programa, execute-o várias vezes e observe os resultados impressos na tela. Os valores impressos foram sempre o valor esperado?
Atividade 6
Objetivo: Mostrar um exemplo de aplicação com threads, memória compartilhada e
synchronized em Java.
Roteiro: Abra o arquivo TIncremento.java e siga o roteiro abaixo.
1. Leia o programa para entender como a sentença synchronized é usada.
2. Qual é a seção crítica do código?
3. Execute o programa várias vezes e observe os resultados impressos na tela. Os valores impressos foram sempre o valor esperado?
Atividade 7
Objetivo: Reapresentar o problema do produtor/consumidor.
Roteiro: Abra o arquivo PC.java e siga o roteiro abaixo.
1. Leia o programa para entender como a sentença synchronized e os métodos wait e
notify são usados.
2. Acrescente no programa a impressão do buffer após as operações de inserção e remoção.
3. Execute o programa várias vezes e verifique se a execução está correta.
4. A chamada ao método notify está correta? Deveria ser substituída por notify-All?
5. Varie o número de threads consumidoras e produtoras, fazendo:
• um produtor e um consumidor
• um produtor e vários consumidores
• vários produtores e um consumidor
• vários produtores e vários consumidores
Atividade 8
Objetivo: Propor uma variação na implementação do problema produtor/consumidor.
Roteiro: Implemente a seguinte variação do problema produtor/consumidor: a cada execução de um produtor, ele carrega o buffer inteiro, e não apenas um único item (para isso ele deve esperar o buffer ficar completamente vazio). O consumidor continua com a mesma lógica, consome um item de cada vez. Varie o número de threads consumidoras e produtoras, fazendo:
• um produtor e um consumidor
• um produtor e vários consumidores
• vários produtores e um consumidor
• vários produtores e vários consumidores
...