C Academy · leksjon

Opprette og administrere tråder

Bruk POSIX-tråder (pthread) til å opprette og styre tråder i C.

Leksjon 2 av 310 trinn

Opprette og administrere tråder er en gratis leksjon i C Academy på CoddyKit. Dette er leksjon 2 av 3. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C Academy inneholder totalt 3 leksjoner.

Opprette og håndtere tråder

Ved flertråding oppretter vi flere tråder for å utføre oppgaver samtidig.

I denne leksjonen lærer De:

  • Hvordan De oppretter flere tråder i C.
  • Hvordan De venter på at tråder skal fullføre kjøringen.
  • Hvordan De sender argumenter til tråder.
Opprette og administrere tråder — illustrasjon 1

Opprette flere tråder

Vi bruker pthread_create() til å opprette flere tråder.

Syntaks:

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

Hver tråd kjører uavhengig, men deler minne med andre tråder.

Eksempel: Opprette flere tråder

Dette programmet oppretter flere tråder som kjører samtidig.

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

Vente på at tråder skal bli ferdige

Bruk pthread_join() til å vente på at en tråd skal fullføre.

Syntaks:

pthread_join(thread, NULL);

Uten pthread_join() kan hovedtråden avsluttes før de andre trådene er ferdige.

Sende argumenter til tråder

Argumenter kan sendes til en trådfunksjon ved hjelp av en peker.

Eksempel:

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

Trådfunksjonen konverterer argumentet tilbake til den opprinnelige typen.

Eksempel: Sende argumenter til tråder

Dette programmet viser hvordan De sender argumenter til en trådfunksjon.

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

Avslutte en tråd

Bruk pthread_exit() til å avslutte en tråd eksplisitt.

Eksempel:

pthread_exit(NULL);

Hovedfunksjonen bør også kalle pthread_exit() ved behov.

Beste praksis for håndtering av tråder

For å håndtere tråder effektivt:

  • Bruk alltid pthread_join() for å unngå for tidlig avslutning.
  • Send argumenter ved hjelp av pekere for å unngå datakorrupsjon.
  • Begrens konflikter mellom delte ressurser.

Sammendrag

I denne leksjonen lærte De:

  • Hvordan De oppretter flere tråder ved hjelp av pthread_create().
  • Hvordan De venter på tråder ved hjelp av pthread_join().
  • Hvordan De sender argumenter til tråder.
  • Hvordan De avslutter en tråd på en trygg måte.

Deretter skal vi se nærmere på synkronisering og kappløpstilstander ved flertråding!

Opprette og administrere tråder — illustrasjon 10
Gratis å komme i gang

Lær deg C med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
39
Leksjoner
144

Ofte stilte spørsmål

Er leksjonen «Opprette og administrere tråder» gratis?

Ja – hele teksten i «Opprette og administrere tråder» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av C Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i C Academy inneholder totalt 3 leksjoner.

Hva lærer jeg i «Opprette og administrere tråder»?

Bruk POSIX-tråder (pthread) til å opprette og styre tråder i C. Du øver på C Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med C Academy?

Ingen tidligere erfaring er nødvendig. C Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 3.

Hvor lang tid tar leksjonen «Opprette og administrere tråder»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne C Academy-leksjonen?

Ja. Alle C Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Introduksjon til tråder
  2. Opprette og administrere tråder
  3. Synkronisering og kappløpstilstander
← Tilbake til C Academy