No Linux, a instrução fork cria um novo processo dentro de sua aplicação:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(int num_args, char** args) {
int pid = fork();
int numero = 10;
if (pid < 0) {
printf("Erro ao criar processo.");
exit(-1);
} else if (pid == 0) {
while (numero > 0) {
sleep(5);
numero--;
printf("Processo 1 - Executando: %d\n", numero);
}
exit(0);
} else if (pid > 0) {
while (numero > 0) {
sleep(3);
numero--;
printf("Processo 2 - Executando: %d\n", numero);
}
exit(0);
}
return 0;
}
Ou seja, isso não é uma thread que é executado em um mesmo processo, e sim, dois processos separados. Se você for no console e ver os processos (comando "ps aux"), verá que aparece duas vezes o nome de seu programa na listagem.
Legal! :)
Até mais!
Nenhum comentário:
Postar um comentário