Skapa och hantera trådar
Använd POSIX-trådar (pthread) för att skapa och styra trådar i C.
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 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!

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
- Introduktion till trådar
- Skapa och hantera trådar
- Synkronisering och race conditions