Olá, Alberto!
Você está correto ao dizer que a função main()
é a thread principal do seu programa. No entanto, quando criamos uma nova thread, não estamos criando um "segundo main", mas sim uma nova linha de execução que pode executar uma função diferente.
Aqui está um exemplo simples de como você pode criar uma segunda thread em C:
#include <pthread.h>
#include <stdio.h>
// Esta é a função que nossa segunda thread executará
void* print_hello(void* data) {
printf("Olá do segundo thread!\n");
return NULL;
}
int main() {
pthread_t thread_id;
// Cria uma nova thread que executará a função print_hello
pthread_create(&thread_id, NULL, print_hello, NULL);
// Aguarda a segunda thread terminar
pthread_join(thread_id, NULL);
printf("Olá do thread principal!\n");
return 0;
}
Neste exemplo, pthread_create
é usado para criar uma nova thread que começa a executar a função print_hello
. pthread_join
é então usado para fazer com que a thread principal espere até que a segunda thread termine.
Espero ter ajudado e bons estudos!