0Pricing
C Academy · Lezione

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 e gestione dei thread — illustrazione 1

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.

Creazione e gestione dei thread — illustrazione 10

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

  1. Introduzione ai thread
  2. Creazione e gestione dei thread
  3. Sincronizzazione e condizioni di competizione
← Torna a C Academy