Aula 9: POSIX Threads — Criação e join
Uma thread é uma unidade de execução leve dentro de um processo. Nesta aula vamos aprender a criar threads com pthread_create, esperar que terminem com pthread_join, e entender a diferença fundamental entre uma thread e um processo.
Um processo é uma fábrica; uma thread é um funcionário na fábrica. Todos os funcionários compartilham o mesmo depósito (memória), mas cada um trabalha de forma independente.
- thread
- Uma unidade de execução independente dentro de um processo, que partilha memória e a tabela de file descriptors com as outras threads, mas tem sua própria stack e seus próprios registradores.
- pthread
- POSIX Threads — o padrão Unix para gerir threads, implementado no Linux via libpthread. A API inclui pthread_create, pthread_join e mais.
- pthread_create
- Função para criar uma thread nova. Recebe um identificador de thread, atributos, uma função de início, e um argumento. Retorna 0 em caso de sucesso.
- pthread_join
- Espera uma thread terminar e libera seus recursos. Sem join, uma thread zombie permanece na memória.
- TID (identificador de thread)
- Identificador único de uma thread dentro de um processo, retornado por pthread_self() ou armazenado no pthread_t passado para pthread_create.