Relatório sobre os passos de programação paralela
Seminário: Relatório sobre os passos de programação paralela. Pesquise 862.000+ trabalhos acadêmicosPor: daniellisn • 6/10/2013 • Seminário • 931 Palavras (4 Páginas) • 348 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 de processamento.
| |1 Thread |minutos |10 Threads |minutos |
| |5039747 |83,9 |501000 |8,3 |
| |5026842 |83,7 |501016 |8,3 |
| |5000718 |83,3 |501123 |8,3 |
| |5000016 |83,3 |501238 |8,3 |
| |5000015 |83,3 |501170 |8,3 |
| |5006750 |83,4 |501104 |8,3 |
| |5004068 |83,4 |500032 |8,3 |
| |5001032 |83,3 |501030 |8,3 |
| |5027081 |83,7 |501047 |8,3 |
| |5038652 |83,9 |501132 |8,3 |
| |
|média tempo em milisegundos |5014492 | |500989 | |
|média tempo em minutos |83,52 | |8,30 | |
| |50 Threads |minutos |100 Threads |minutos |
| |101499 |1,6 |51764 |0,8 |
| |101925 |1,6 |51769 |0,8 |
| |101015 |1,6 |50765 |0,8 |
| |101403 |1,6 |51760 |0,8 |
| |101046 |1,6 |51772 |0,8 |
| |101013 |1,6 |50789 |0,8 |
| |101016 |1,6 |50780 |0,8 |
| |101035 |1,6 |51761 |0,8 |
| |101010 |1,6 |50783 |0,8 |
| |101043 |1,6 |50757 |0,8 |
| | |
|média tempo em milisegundos |101201 | |51270 | |
|média tempo em minutos |1,60 | |0,80 | |
...