C Academy · Lektion

Skapa och hantera trådar

Använd POSIX-trådar (pthread) för att skapa och styra trådar i C.

Lektion 2 av 310 steg

Skapa och hantera trådar är en gratis lektion i C Academy på CoddyKit. Detta är lektion 2 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C Academy innehåller totalt 3 lektioner.

Skapa och hantera trådar

Vid multitrådning skapar vi flera trådar för att köra uppgifter samtidigt.

I den här lektionen får du lära dig:

  • Hur du skapar flera trådar i C.
  • Hur du väntar på att trådar ska slutföra körningen.
  • Hur du skickar argument till trådar.
Skapa och hantera trådar — illustration 1

Skapa flera trådar

Vi använder pthread_create() för att skapa flera trådar.

Syntax:

pthread_create(&thread, NULL, function, argument);

Varje tråd körs självständigt men delar minne med andra trådar.

Exempel: Skapa flera trådar

Det här programmet skapar flera trådar som körs samtidigt.

#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;
}

Vänta på att trådar ska slutföras

Använd pthread_join() för att vänta på att en tråd ska slutföras.

Syntax:

pthread_join(thread, NULL);

Utan pthread_join() kan huvudtråden avslutas innan de andra trådarna är klara.

Skicka argument till trådar

Argument kan skickas till en trådfunktion med hjälp av en pekare.

Exempel:

pthread_create(&thread, NULL, function, (void*)&value);

Trådfunktionen konverterar tillbaka argumentet till dess ursprungliga typ.

Exempel: Skicka argument till trådar

Det här programmet visar hur du skickar argument till en trådfunktion.

#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;
}

Avsluta en tråd

Använd pthread_exit() för att uttryckligen avsluta en tråd.

Exempel:

pthread_exit(NULL);

Huvudfunktionen bör också anropa pthread_exit() vid behov.

Bästa praxis för trådhantering

Hantera trådar effektivt genom att:

  • Alltid använda pthread_join() för att undvika för tidig avslutning.
  • Skicka argument med hjälp av pekare för att undvika datakorruption.
  • Minimera konflikter mellan delade resurser.

Sammanfattning

I den här lektionen har du lärt dig:

  • Hur du skapar flera trådar med hjälp av pthread_create().
  • Hur du väntar på trådar med hjälp av pthread_join().
  • Hur du skickar argument till trådar.
  • Hur du avslutar en tråd på ett säkert sätt.

Härnäst ska vi utforska synkronisering och kapplöpningstillstånd vid multitrådning!

Skapa och hantera trådar — illustration 10
Gratis att börja

Lär dig C med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
39
Lektioner
144

Vanliga frågor

Är lektionen ”Skapa och hantera trådar” gratis?

Ja – hela texten till ”Skapa och hantera trådar” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Skapa och hantera trådar”?

Använd POSIX-trådar (pthread) för att skapa och styra trådar i C. Ni övar på C Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C Academy?

Du behöver inga förkunskaper. Utbildningen i C Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 3.

Hur lång tid tar lektionen ”Skapa och hantera trådar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C Academy-lektionen?

Ja. Varje C Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Introduktion till trådar
  2. Skapa och hantera trådar
  3. Synkronisering och race conditions
← Tillbaka till C Academy