Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Introduksjon til samtidighet | Multithreading vs. Multiprocessing
Python Strukturert Programmering

Introduksjon til samtidighet

Sveip for å vise menyen

Konkurrens og parallellitet er begreper som ofte brukes om hverandre, men de beskriver ulike tilnærminger til håndtering av flere oppgaver. Konkurrens refererer til et programs evne til å håndtere flere oppgaver samtidig, men ikke nødvendigvis utføre dem samtidig. I stedet kan oppgavene bytte på å bruke de samme ressursene, som én enkelt CPU-kjerne, ved å veksle raskt mellom dem. Dette er spesielt nyttig for programmer som bruker tid på å vente på inn-/utdata (I/O)-operasjoner, som å lese fra filer eller nettverkstilkoblinger.

Parallellitet, derimot, betyr faktisk å kjøre flere oppgaver på nøyaktig samme tidspunkt. Dette er mulig når du har mer enn én CPU-kjerne tilgjengelig, slik at oppgaver kan utføres virkelig parallelt. Parallellitet er spesielt viktig for CPU-bundne oppgaver, som begrenses av prosessorens hastighet, for eksempel ved komplekse beregninger.

Å forstå forskjellen mellom CPU-bundne og I/O-bundne oppgaver hjelper deg å velge riktig tilnærming. CPU-bundne oppgaver begrenses av beregningshastigheten, mens I/O-bundne oppgaver bruker mesteparten av tiden på å vente på eksterne operasjoner, som disktilgang eller nettverksrespons. I Python implementeres konkurrens ofte ved hjelp av tråder, som er lette og kan hjelpe med I/O-bundne oppgaver. For CPU-bundne oppgaver er multiprocessing, som bruker separate prosesser, mer effektivt fordi tråder i Python begrenses av Global Interpreter Lock (GIL).

Som du så i videoen, avhenger valget mellom konkurrens og parallellitet av arbeidsmengden i programmet ditt. Hvis oppgavene dine venter på I/O, kan konkurrens med tråder øke effektiviteten. Hvis oppgavene dine krever mye beregning, vil parallellitet med flere prosesser hjelpe deg å utnytte maskinvaren best mulig.

question mark

Hvilket utsagn beskriver best forskjellen mellom konkurrens og parallellitet i Python?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 3. Kapittel 1
some-alt