Criação e gerenciamento de threads
Use threads POSIX (pthread) para criar e controlar threads em C.
Criação e gerenciamento de threads é uma aula grátis de C Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C Academy inclui 3 aulas no total.
Criando e gerenciando linhas de execução
Criando e gerenciando linhas de execução
Na execução com múltiplas linhas, criamos várias linhas de execução para executar tarefas simultaneamente.
Nesta lição, você aprenderá:
- Como criar várias linhas de execução em C.
- Como aguardar as linhas de execução terminarem.
- Como passar argumentos para as linhas de execução.

Criando várias linhas de execução
Criando várias linhas de execução
Usamos pthread_create() para criar várias linhas de execução.
Sintaxe:
pthread_create(&thread, NULL, function, argument);
Cada linha de execução funciona de forma independente, mas compartilha a memória com as outras.
Exemplo: criando várias linhas de execução
Exemplo: criando várias linhas de execução
Este programa cria várias linhas de execução que funcionam simultaneamente.
#include <stdio.h>
#include <pthread.h>
void *printMessage(void *arg) {
printf("Thread %d: Hello from thread!\n", *(int*)arg);
return NULL;
}
int main() {
pthread_t threads[3];
int thread_ids[3] = {1, 2, 3};
for (int i = 0; i < 3; i++) {
pthread_create(&threads[i], NULL, printMessage, &thread_ids[i]);
}
for (int i = 0; i < 3; i++) {
pthread_join(threads[i], NULL);
}
return 0;
}Aguardando as linhas de execução terminarem
Aguardando as linhas de execução terminarem
Use pthread_join() para aguardar uma linha de execução ser concluída.
Sintaxe:
pthread_join(thread, NULL);
Sem pthread_join(), a linha de execução principal pode terminar antes que as outras concluam.
Passando argumentos para as linhas de execução
Passando argumentos para as linhas de execução
Os argumentos podem ser passados para uma função de linha de execução usando um ponteiro.
Exemplo:
pthread_create(&thread, NULL, function, (void*)&value);
A função da linha de execução converte o argumento de volta para seu tipo original.
Exemplo: passando argumentos para as linhas de execução
Exemplo: passando argumentos para as linhas de execução
Este programa demonstra como passar argumentos para uma função de linha de execução.
#include <stdio.h>
#include <pthread.h>
void *printNumber(void *arg) {
int num = *(int*)arg;
printf("Thread received number: %d\n", num);
return NULL;
}
int main() {
pthread_t thread;
int value = 10;
pthread_create(&thread, NULL, printNumber, &value);
pthread_join(thread, NULL);
return 0;
}Finalizando uma linha de execução
Finalizando uma linha de execução
Use pthread_exit() para finalizar explicitamente uma linha de execução.
Exemplo:
pthread_exit(NULL);
A função principal também deve chamar pthread_exit(), se necessário.
Práticas recomendadas para gerenciar linhas de execução
Práticas recomendadas para gerenciar linhas de execução
Para gerenciar as linhas de execução com eficiência:
- Sempre use
pthread_join()para evitar uma finalização prematura. - Passe argumentos usando ponteiros para evitar corrupção de dados.
- Minimize os conflitos pelo acesso a recursos compartilhados.
Resumo
Resumo
Nesta lição, você aprendeu:
- Como criar várias linhas de execução usando
pthread_create(). - Como aguardar as linhas de execução usando
pthread_join(). - Como passar argumentos para as linhas de execução.
- Como finalizar uma linha de execução com segurança.
Em seguida, você explorará a sincronização e as condições de corrida na execução com múltiplas linhas!

Perguntas Frequentes
A aula “Criação e gerenciamento de threads” é grátis?
Sim — o texto completo de “Criação e gerenciamento de threads” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C Academy, atualize para CoddyKit PRO. O curso de C Academy inclui 3 aulas no total.
O que vou aprender em “Criação e gerenciamento de threads”?
Use threads POSIX (pthread) para criar e controlar threads em C. Você pratica C Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C Academy?
Nenhuma experiência prévia é necessária. C Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.
Quanto tempo leva a aula “Criação e gerenciamento de threads”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C Academy?
Sim. Cada aula de C Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Introdução às threads
- Criação e gerenciamento de threads
- Sincronização e condições de corrida