Programação concorrente
Por: linoricsrdo • 20/9/2016 • Trabalho acadêmico • 4.156 Palavras (17 Páginas) • 279 Visualizações
ANHANGUERA EDUCACIONAL
VILA MARIANA
[pic 1]
ATIVIDADE PRÁTICA E SUPERVISIONADA
Disciplina: Programação Concorrente
Professor: Edcleison Martinez Zanardi
São Paulo
2016
INTRODUÇÃO
Escolhemos Java como linguagem de programação pois atualmente a linguagem mais utilizada em todo o mundo, ainda em crescimento nas empresas, através de novas adoções. Uma coisa que se deve mencionar é que hoje o Java não é apenas uma linguagem, mas sim uma plataforma de desenvolvimento.
O java.lang.Thread classe é um segmento de execução de um programa. O Java Virtual Machine permite que um aplicativo tem vários threads de execução em execução concurrently.Following são os pontos importantes sobre o Tópico:
Cada segmento tem uma prioridade. Threads com maior prioridade são executados em detrimento de tópicos com menor prioridade.
Cada segmento pode ou não pode também ser marcado como um daemon.
Existem duas maneiras de criar um novo segmento de execução. Um deles é para declarar uma classe para ser uma subclasse de Thread e, a outra maneira de criar uma lista de discussão é declarar uma classe que implementa a interface Runnable
RELATÓRIO DA ETAPA I
- APRESENTAÇÃO DO CÓDIGO:
package Thread;
public class ClassePrincipal {
public static void main(String[]args) throws InterruptedException{
//Metodo de execução Sem Thread
//SemThread semThread = new SemThread();
//semThread.execucao();
System.out.println("Thread principal iniciando");
CanalUm canalUm = new CanalUm("Canal I", 1);
Thread CanalUm = new Thread(canalUm);
canalUm.start();
CanalDois canalDois = new CanalDois("Canal II", 10);
Thread CanalDois = new Thread(canalDois);
canalDois.start();
canalDois.join();
CanalTres canalTres = new CanalTres("Canal III", 50);
Thread CanalTres = new Thread(canalTres);
canalTres.start();
CanalQuatro canalQuatro = new CanalQuatro("Canal IV", 100);
Thread CanalQuatro = new Thread(canalQuatro);
canalQuatro.start();
CanalCinco canalCinco = new CanalCinco("Canal V", 500);
Thread CanalCinco = new Thread(canalCinco);
canalCinco.start();
canalCinco.join();
CanalSeis canalSeis = new CanalSeis("Canal VI", 1000);
Thread CanalSeis = new Thread(canalCinco);
canalSeis.start();
System.out.println("Thread principal encerrando!");
}
}
package Thread;
public class SemThread {
public void execucao(){
System.out.println("Início do metodo execução: ");
try{
int x = 0;
//FOR I
for(int i = 0; i<1; i++){
x = x + 2;
System.out.println("Valor final de X: "+x);
Thread.sleep(1000);//metodo de espera
}
//FOR II
int y = 0;
for(int i = 0; i<10; i++){
y = y + 3;
Thread.sleep(1000);
System.out.println("Valor final de Y: "+y);
}
//FOR III
int z = 0;
for(int i = 0; i<50; i++){
z = z + 4;
Thread.sleep(1000);
System.out.println("Valor final de Z: "+z);
}
//FOR IV
int a = 0;
for(int i = 0; i<100; i++){
a = a + 5;
Thread.sleep(1000);
System.out.println("Valor final de A: "+a);
}
//FOR V
int b = 0;
for(int i = 0; i<500; i++){
b = b + 6;
Thread.sleep(1000);
System.out.println("Valor final de B: "+b);
}
//FOR VI
int c = 0;
for(int i = 0; i<1000; i++){
c = c + 6;
Thread.sleep(1000);
System.out.println("Valor final de B: "+c);
}
System.out.println("Final do metodo execução: ");
}catch(Exception e){
System.out.println(e.getMessage());
}
}
public SemThread(){
System.out.println("Executando o construtor!");
}
}
package Thread;
public class CanalUm extends Thread implements Runnable{
private String mensagem;
private int atraso;
public CanalUm() {
...