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

TECNOLOGIA

Por:   •  10/6/2015  •  Trabalho acadêmico  •  473 Palavras (2 Páginas)  •  254 Visualizações

Página 1 de 2

#include <stdio.h>

#include <stdlib.h>

#include <pthread.h>

#include <unistd.h> // Para utilizar a função sleep

#include <time.h> // Para trabalhar com data e hora

#include <string.h>

#include <stdbool.h>

#define max 1000

#define threads 50

// Declaração da variável de condição

pthread_mutex_t mutex;

// Declaração das variáveis para pegar

// a data/hora do computador

time_t hora_ini, hora_fim;

int count = -1;

struct Pedido {

double codigo;

char descricao[1001];

} pedidos[max];

void consumidor(int id)

{

int aguardar;

time_t t_ini, t_fim;

time(&hora_ini);

//printf("\nInicio Consumidor %d", id);

while(true) {

// retira item da fila

do {

pthread_mutex_lock(&mutex);

aguardar = false;

count++;

if (count >= max) {

aguardar = true;

time(&hora_fim);

printf("\nConsumidor %d Intervalo de tempo: %f seg.",id, difftime(hora_fim, hora_ini));

pthread_mutex_unlock(&mutex);

pthread_exit(NULL);

}

} while(aguardar == true);

pthread_mutex_unlock(&mutex);

// Mostra o item na tela

//printf("\nConsumidor %d consumiu o item %g", id, pedidos[count].codigo);

usleep(1000);

}

}

int main(int argc, char *argv[]) {

int i;

pthread_t cons[threads];

//preencher vetor pedidos

for(i=0;i<max;i++)

{

pedidos[i].codigo = (i+1);

strcpy(pedidos[i].descricao, "Descricao do pedido: ");

}

pthread_mutex_init(&mutex,NULL);

for(i=0;i<threads;i++)

{

pthread_create(&cons[i],NULL,(void *)consumidor,(i+1));

}

getch();

return 0;

}

#include <stdio.h>

#include <stdlib.h>

#include <pthread.h>

#include <unistd.h> // Para utilizar a função sleep

#include <time.h> // Para trabalhar com data e hora

#include <string.h>

#include <stdbool.h>

#define max 1000

#define threads 50

// Declaração da variável de condição

pthread_mutex_t mutex;

// Declaração das variáveis para pegar

// a data/hora do computador

time_t hora_ini, hora_fim;

int count = -1;

struct Pedido {

double codigo;

char descricao[1001];

} pedidos[max];

void consumidor(int id)

{

int aguardar;

time_t t_ini, t_fim;

time(&hora_ini);

//printf("\nInicio Consumidor %d", id);

while(true) {

// retira item da fila

do {

pthread_mutex_lock(&mutex);

aguardar = false;

count++;

if (count >= max) {

aguardar = true;

time(&hora_fim);

printf("\nConsumidor %d Intervalo de tempo: %f seg.",id, difftime(hora_fim, hora_ini));

pthread_mutex_unlock(&mutex);

pthread_exit(NULL);

}

} while(aguardar == true);

...

Baixar como (para membros premium)  txt (6.3 Kb)   pdf (49.4 Kb)   docx (16.9 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com