Programação Concorrente
Trabalho Universitário: Programação Concorrente. Pesquise 862.000+ trabalhos acadêmicosPor: AdrianoRosa • 1/9/2013 • 411 Palavras (2 Páginas) • 537 Visualizações
RELATÓRIO ETAPA - 1
Código fonte desenvolvido para a etapa 1, passos 1, 2, 3 e 4 da ATPS de Programação Concorrente.
Classe nomeada como Principal
package atpsEtapa1;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Principal extends Thread{
static List lista = new ArrayList();
@Override
public void run(){
while(!lista.isEmpty()){
Numero pedido = lista.get(0);
lista.remove(pedido);
try {
sleep(1000);
System.out.println(Thread.currentThread().getName() + " - "+ pedido.getValor()+" valor consumido");
} catch (InterruptedException m) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, m);
}
}
}
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 5000; i++) {
lista.add(new Numero(i,"descricao "+i));
}
//marca o início do tempo de execução
long inicio = System.nanoTime() / 1000000;
//quantidade de threads a serem criadas, conforme especificar
Principal[] threads = new Principal[500];
for (int i = 0; i < threads.length; i++) {
threads[i] = new Principal();
threads[i].setName("Thread: "+i);
threads[i].start();
}
for (int i = 0; i < threads.length; i++) {
threads[i].join();
}
//imprimi o tempo final do processo
long fim = System.nanoTime() / 1000000;
System.out.println("Tempo Total Processado: " + (fim - inicio) + " ms");
}
}
Classe nomeada como Número
package atpsEtapa1;
public class Numero {
private int valor;
private String nome;
Numero(int valor, String nome) {
this.setValor(valor);
this.setNome(nome);
}
public void setValor(int valor) {
this.valor = valor;
}
public int getValor() {
return valor;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
}
Tabelas comparativas, quantidades de Threads e seus tempos
...