Creazione e gestione dei thread
Utilizzi i thread POSIX (pthread) per creare e controllare thread in C.
Creazione e gestione dei thread è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 3 lezioni in totale.
Creazione e gestione dei thread
Creazione e gestione dei thread
Nel multithreading, creiamo più thread per eseguire le attività contemporaneamente.
In questa lezione imparerà:
- Come creare più thread in C.
- Come attendere il completamento dei thread.
- Come passare argomenti ai thread.

Creazione di più thread
Creazione di più thread
Usiamo pthread_create() per creare più thread.
Sintassi:
pthread_create(&thread, NULL, function, argument);
Ogni thread viene eseguito in modo indipendente, ma condivide la memoria con gli altri thread.
Esempio: creazione di più thread
Esempio: creazione di più thread
Questo programma crea più thread che vengono eseguiti contemporaneamente.
#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;
}Attesa del completamento dei thread
Attesa del completamento dei thread
Usi pthread_join() per attendere il completamento di un thread.
Sintassi:
pthread_join(thread, NULL);
Senza pthread_join(), il thread principale potrebbe terminare prima che gli altri thread abbiano finito.
Passaggio di argomenti ai thread
Passaggio di argomenti ai thread
È possibile passare argomenti a una funzione thread usando un puntatore.
Esempio:
pthread_create(&thread, NULL, function, (void*)&value);
La funzione del thread riconverte l'argomento nel tipo originale.
Esempio: passaggio di argomenti ai thread
Esempio: passaggio di argomenti ai thread
Questo programma mostra come passare argomenti a una funzione thread.
#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;
}Terminazione di un thread
Terminazione di un thread
Usi pthread_exit() per terminare esplicitamente un thread.
Esempio:
pthread_exit(NULL);
Anche la funzione principale dovrebbe chiamare pthread_exit(), se necessario.
Best practice per la gestione dei thread
Best practice per la gestione dei thread
Per gestire i thread in modo efficiente:
- Usi sempre
pthread_join()per evitare una terminazione prematura. - Passi gli argomenti tramite puntatori per evitare la corruzione dei dati.
- Riduca al minimo i conflitti sulle risorse condivise.
Riepilogo
Riepilogo
In questa lezione ha imparato:
- Come creare più thread usando
pthread_create(). - Come attendere i thread usando
pthread_join(). - Come passare argomenti ai thread.
- Come terminare un thread in modo sicuro.
Successivamente, esploreremo la sincronizzazione e le race condition nel multithreading.

Domande Frequenti
La lezione «Creazione e gestione dei thread» è gratuita?
Sì — il testo completo di «Creazione e gestione dei thread» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 3 lezioni in totale.
Cosa imparerò in «Creazione e gestione dei thread»?
Utilizzi i thread POSIX (pthread) per creare e controllare thread in C. Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C Academy?
Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.
Quanto tempo richiede la lezione «Creazione e gestione dei thread»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C Academy?
Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Introduzione ai thread
- Creazione e gestione dei thread
- Sincronizzazione e condizioni di competizione