Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exemplo de uma segunda thread em linguagem C

Pelo que entendi do conceito de thread, num programa em linguagem C (por exemplo), a rotina

int main(int argc, char** argv)

é uma thread. Ao abrir uma segunda thread, esta seria um "segundo main". Poderiam me dar um exemplo na linguagem C (preferencialmente), de um "segundo main")? Existe no curso de Linux Onboarding (ou outros cursos no ALURA), abordando este assunto?

2 respostas

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!

solução!

Lucas, implementei numa VM Ubuntu (imagem abaixo), conforme sua orientação - Muito obrigado pela passagem de conhecimento

Exemplo de uma segunda thread