Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kandrade

[Resolvido] [Código] Thread e Processos

Recommended Posts

Mesmo caso do socket, esse código foi compilado no gcc do Linux, por isso não deve funcionar no windows.

Foi um trabalho da faculdade do 5º período.

 

 

#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <signal.h>
#include <wait.h>

void *primeira_thread(void *arg);
void *segunda_thread(void *arg);

main()
{
   int i;
   i=fork();
   if(i==0)
   {
	  int sinal;
	  printf("Digite o valor de retorno do filho:\n");
	  scanf("%i",&sinal);
	  system("clear");
	  exit (sinal);
   }
   else if(i>0)
   {
	  pthread_t thread1, thread2;
	  int  iret1, iret2, status;
	  wait (&status);
	  if(WEXITSTATUS(status)==0){
		 printf("*********EXECUCAO DA PRIMEIRA THREAD************\n\n");
		 iret1 = pthread_create( &thread1, NULL, primeira_thread, NULL);
	  }
	  else if(WEXITSTATUS (status)==1){
		 printf("*********EXECUCAO DA SEGUNDA THREAD************\n\n");
		 iret2 = pthread_create( &thread2, NULL, segunda_thread, NULL);
	  }
	  exit(0);
   }
}

void *primeira_thread(void *arg)
{
   int i;
   for(i=0;i<=100;i++){
	  if(i!=100)
		 printf("%i - ", i);
	  else
		 printf("%i \n\n", i);
   }
}

void *segunda_thread(void *arg)
{
   int i;
   for(i=100;i<=200;i++){
	  if((i%2)==0) {
		 if(i!=200)
			printf("%i - ", i);
		 else
			printf("%i \n\n", i);
	  }
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.