Programação Concorrente em Laboratório
Por: mauricio_jr • 5/6/2016 • Pesquisas Acadêmicas • 758 Palavras (4 Páginas) • 304 Visualizações
[pic 1][pic 2]
Curso: | Bacharelado em Sistemas de Informação | Série: | 6ª 7ª | Turma: | Nota: | |
Disciplina: | Programação Concorrente | Turno: | ||||
Professor: | Leslier Soares | Data: | ___/___/______ | |||
Aluno(a): | RA: |
Exercícios Práticos – Laboratório 03
Introdução
O objetivo deste Laboratório é introduzir o uso de multithreading e monitores em Java. Para cada atividade, siga o roteiro proposto e responda a todas as questões colocadas antes de passar para a próxima atividade.
Atividade 1
Objetivo: Mostrar como criar programas com várias threads em Java.
Roteiro: Em Java uma thread é normalmente uma subclasse de java.lang.Thread, a qual oferece métodos para criar threads, iniciá-las, suspendê-las e esperar pelo seu término.
O primeiro passo para criar uma aplicação concorrente em Java é criar uma classe que implementa a interface Runnable. Essa interface define o método run(), responsável pelo código que deverá ser executado pela thread. O segundo passo é transformar o objeto Runnable em uma thread, chamando o construtor da classe Thread com o objeto Runnable como argumento. O terceiro passo é iniciar as threads criadas, usando o método start() da classe Thread.
Abra o arquivo THello.java e siga o roteiro abaixo.
1. Leia o programa e tente entender o que ele faz.
2. Compile o programa fazendo javac THello.java.
3. Execute o programa várias vezes fazendo java THello) e observe os resultados impressos na tela. Há mudanças na ordem de execução das threads? Por que isso ocorre?
4. Comente as linhas 38-40 e compile o programa novamente.
5. Execute o programa várias vezes e observe os resultados impressos na tela. Qual alteração na execução da aplicação pode ser observada e por que ela ocorre?
Atividade 2
Objetivo: Forçar as threads a executarem em duas rodadas.
Roteiro: Edite o arquivo THelloBye.java e siga o roteiro abaixo.
1. Observe as alterações no código em relação ao arquivo anterior.
2. Compile e execute o programa várias vezes e observe os resultados impressos na tela. Qual alteração na execução da aplicação pode ser observada agora e por que ela ocorre?
Atividade 3
Objetivo: Mostrar outra forma de criar threads em Java.
Roteiro: Outra forma de criar programas concorrentes em Java é estendendo a classe
Thread. Abra o arquivo OlaMundo.java e siga o roteiro abaixo.
1. Primeiro, encontre as principais diferenças em relação ao programa THello.java.
2. Compile e execute o programa várias vezes, e observe os resultados impressos na tela.
Atividade 4
Objetivo: Transformar uma aplicação Java sequencial em uma aplicação concorrente.
Roteiro: O programa MultMat.java e´ um programa sequencial que implementa uma multiplicação de matrizes. Transforme esse programa em um programa concorrente seguindo o roteiro abaixo.
1. Primeiro, compile e execute o programa original e cheque os resultados obtidos.
2. Altere o programa para que ele defina threads de execução distintas, cada uma responsável pelo cálculo de uma linha da matriz de saída.
3. Execute o programa várias vezes alterando os valores das matrizes de entrada.
Atividade 5
Objetivo: Mostrar um exemplo de aplicação com threads e memória compartilhada em
Java.
Roteiro: Abra o arquivo TIncrementoBase.java e siga o roteiro abaixo.
1. Leia o programa para entender o que ele faz. Qual saída é esperada para o programa (valor final de s)?
...