Escolar Documentos
Profissional Documentos
Cultura Documentos
EXERCÍCIO 1
CREATE.C
void *threadBody (void *id) // Nova função a ser executada pela thread.
{
long tid = (long) id ;
if (status)
{
perror ("pthread_create") ;
exit (1) ;
}
}
pthread_exit (NULL) ;
}
EXERCÍCIO 2
void *threadBody (void *id) // Nova função a ser executada pela thread.
pthread_create: Main thread cria uma thread filho. A função pthread_create() possui
quatro argumentos. O primeiro é usado para guardar a informação sobre a thread criada.
O segundo especifica algumas propriedades da thread a criar, o valor NULL foi utilizado
por default. O Terceiro argumento é a função que a nova thread irá executar e o último
argumento é representa argumentos a esta função.
3.
EXERCÍCIO 2
JOIN.C
status: ponteiro para um objeto que recebe o valor retornado pela thread acordada
Criação de threads:
Terminar um thread
PRINTX.C
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int x = 0 ;
x++ ;
printf ("t%02ld: Olá! (x=%02d)\n", tid, x) ;
sleep (3) ;
x++ ;
printf ("t%02ld: Tchau! (x=%02d)\n", tid, x) ;
pthread_exit (NULL) ;
}
if (status)
{
perror ("pthread_create") ;
exit (1) ;
}
}
pthread_exit (NULL) ;
}
Neste programa são criadas as thread 00 , 01, 02 , a cada uma delas associam-se valores
a variável x . Primeira thread t00: Olá (x=01), segunda thread t01: Olá (x=02); a seguir é
criada a terceira thread , atribuímos a thread dois o valor da variável (x=03), a thread t03:
Olá (x=4)
SAÍDA DO PROGRAMA:
2. A chamada de sistema fork() cria uma réplica do processo solicitante, assim todo o
espaço da memória deste processo é replicado; esta chamada é invocada por um
processo (pai), entretanto haverá dois processos que receberão seu retorno ( processo
pai que invocou, e o processo filho que possui o mesmo estado interno que o processo
pai ). A evolução da variável X em um programa que se utilize da chamada de sistema
fork() teria como resultado um maior consumo de memória em virtude da replicação dos
processos solicitantes.
TODAS AS SAÍDAS:
CREATE.C
JOIN.C
PRINTX.C