TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Atps programação concorrente

Por:   •  5/4/2015  •  Pesquisas Acadêmicas  •  803 Palavras (4 Páginas)  •  767 Visualizações

Página 1 de 4

FACULDADE ANHANGUERA DE INDAIATUBA

CIÊNCIA  DA COMPUTAÇÃO

           

PROGRAMAÇÃO         CONCORRENTE

                 

 Jaqueline Andressa Monteiro                 RA:5668152157

   Michelle Yamashita Vaz                                RA:5680148750

   Indaiatuba

2015

                                

Trabalho apresentado como requisito parcial para obtenção de aprovação na disciplina de Programação Concorrente no Curso de Ciência da Computação, na Faculdade Anhanguera de Indaiatuba.

Orientação:

Professor:  Ítalo

RELATÓRIO ETAPA – 1

Código fonte:

1.

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));

}

// início do tempo de execução

long inicio = System.nanoTime() / 1000000;

// 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();

}

// tempo final do processo

long fim = System.nanoTime() / 1000000;

System.out.println("Tempo Total: " + (fim - inicio) + " ms");

}

}

2.

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

500 Threads minutos 1000 Threads minutos

11001 0,1 6002 0,1

10244 0,1 6089 0,1

10228 0,1 5309 0,08

11005 0,1 5278 0,08

10228 0,1 5393 0,08

11005 0,1 5309 0,08

10224 0,1 5293 0,08

11003 0,1 6104 0,1

10243 0,1 5310 0,08

11004 0,1 6008 0,1

média tempo em milisegundos 10619 5610

média tempo em minutos 0,10 0,09

* Gráfico geral, tempo em milissegundos.

RELATÓRIO ETAPA - 2

Código fonte:

1.

import java.util.ArrayList;

import java.util.List;

public class classePrincipal extends Thread{

static List lista = new ArrayList();

public static void main(String[] args) throws InterruptedException {

//Imprimir tempo final

long inicio = System.nanoTime() / 1000000;

//instanciando as Threads Consumidora e Produtora

classeConsumidor[] threadConsumidora = new classeConsumidor[1000];

classeProdutor[] treadProdutora = new classeProdutor[1000];

//for para executar as Threads "x" quantidades de vezes, conforme solicitado

int cont = 0;

for(int m = 0; m < 10; m++){

//iniciando as Threads

for (int i = 0; i < threadConsumidora.length; i++) {

threadConsumidora[i] = new classeConsumidor();

threadConsumidora[i].setName("Thread Consumidor: " + i);

threadConsumidora[i].start();

//threadConsumidora[i].join();

treadProdutora[i] = new classeProdutor();

treadProdutora[i].setName("Thread Produtor: " + i);

treadProdutora[i].start();

//treadProdutora[i].join();

}

for (int i = 0; i < threadConsumidora.length; i++) {

threadConsumidora[i].join();

...

Baixar como (para membros premium)  txt (7.8 Kb)   pdf (121.8 Kb)   docx (17.8 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com