Hovedforskjell : Tråd og prosess er to nært beslektede uttrykk i multi-threading. Hovedforskjellen mellom de to betingelsene er at trådene er en del av en prosess, det vil si at en prosess kan inneholde en eller flere tråder, men en tråd kan ikke inneholde en prosess.
I programmeringen er det to grunnleggende utførelsesenheter: prosesser og tråder. De utfører begge en rekke instruksjoner. Begge er initiert av et program eller operativsystemet. Denne artikkelen bidrar til å skille mellom de to enhetene.
En prosess har et selvstendig utførelsesmiljø. Den har et komplett sett med private grunnleggende kjøretidsressurser; Spesielt har hver prosess sin egen minneplass. Prosesser anses ofte som ligner andre programmer eller applikasjoner. Imidlertid kan kjøring av en enkelt applikasjon faktisk være et sett samarbeidsprosesser. For å lette kommunikasjonen mellom prosessene, bruker de fleste operativsystemer Inter Process Communication (IPC) ressurser, for eksempel rør og stikkontakter. IPC-ressursene kan også brukes til kommunikasjon mellom prosesser på forskjellige systemer. De fleste applikasjoner i en virtuell maskin kjøres som en enkelt prosess. Det kan imidlertid skape flere prosesser ved hjelp av et prosessbyggerobjekt.
I datamaskiner kan en tråd utføre selv den minste sekvensen av programmerte instruksjoner som kan administreres uavhengig av et operativsystem. Applikasjonene av tråder og prosesser varierer fra ett operativsystem til et annet. Men trådene er laget av og eksisterer i en prosess; hver prosess har minst en. Flere tråder kan også eksistere i en prosess og dele ressurser, noe som bidrar til effektiv kommunikasjon mellom tråder.
På en enkelt prosessor finner multitasking sted når prosessoren bytter mellom forskjellige tråder; det er kjent som multithreading. Byttingen skjer så ofte at tråder eller oppgaver blir oppfattet som kjører samtidig. Tråder kan virkelig være samtidige på et multiprocessor eller multi-core system, med hver prosessor eller kjerne som utfører de separate trådene samtidig.
Sammendrag kan tråder betraktes som lette prosesser, da de inneholder enkle sett med instruksjoner og kan kjøre i en større prosess. Datamaskiner kan kjøre flere tråder og prosesser på samme tid.
Sammenligning mellom prosess og tråd:
Prosess | Tråd | |
Definisjon | En henrettende forekomst av et program kalles en prosess. | En tråd er en del av prosessen. |
Prosess | Den har sin egen kopi av datasegmentet i overordnet prosess. | Den har direkte tilgang til datasegmentet i prosessen. |
Kommunikasjon | Prosesser må bruke interprosess kommunikasjon for å kommunisere med søskenprosesser. | Tråder kan kommunisere direkte med andre tråder i prosessen. |
overhead | Prosesser har betydelig overhead. | Tråder har nesten ingen overhead. |
Opprettelse | Nye prosesser krever duplisering av overordnet prosess. | Nye tråder blir enkelt opprettet. |
Styre | Prosesser kan bare utøve kontroll over barnprosesser. | Tråder kan utøve betydelig kontroll over tråder av samme prosess. |
Endringer | Enhver endring i foreldreprosessen påvirker ikke barnprosesser. | Enhver endring i hovedtråden kan påvirke oppførselen til de andre trådene i prosessen. |
Hukommelse | Kjør i separate minneplasser. | Kjør i delte minnesplasser. |
Filbeskrivelser | De fleste filbeskrivere deles ikke. | Den deler filbeskrivelser. |
Filsystem | Det er ingen deling av filsystemkontekst. | Den deler filsystemkontekst. |
Signal | Det deler ikke signalhåndtering. | Den deler signalbehandling. |
Kontrollert av | Prosessen styres av operativsystemet. | Trådene styres av programmereren i et program. |
Avhengighet | Prosessene er uavhengige. | Tråder er avhengige. |