Hovedforskel : Tråd og proces er to nært beslægtede udtryk i multi-threading. Hovedforskellen mellem de to udtryk er, at trådene er en del af en proces, dvs. en proces kan indeholde en eller flere tråde, men en tråd kan ikke indeholde en proces.
I programmeringen er der to grundlæggende enheder til udførelse: processer og tråde. De udfører begge en række instruktioner. Begge er initieret af et program eller operativsystemet. Denne artikel hjælper med at skelne mellem de to enheder.
En proces har et selvstændigt udførelsesmiljø. Det har et komplet sæt af private grundlæggende run-time ressourcer; Især hver proces har sit eget hukommelsesrum. Processer anses ofte for ligner andre programmer eller applikationer. En enkelt ansøgning kan imidlertid faktisk være et sæt samarbejdende processer. For at lette kommunikationen mellem processerne bruger de fleste operativsystemer Inter Process Communication (IPC) ressourcer, såsom rør og stikkontakter. IPC-ressourcerne kan også bruges til kommunikation mellem processer på forskellige systemer. De fleste applikationer i en virtuel maskine kører som en enkelt proces. Det kan dog skabe yderligere processer ved hjælp af et procesbyggerobjekt.
I computere kan en tråd selv udføre den mindste række programmerede instruktioner, som kan styres uafhængigt af et operativsystem. Anvendelserne af tråde og processer adskiller sig fra et operativsystem til et andet. Trådene er imidlertid lavet af og eksisterer inden for en proces; hver proces har mindst en. Flere tråde kan også eksistere i en proces og dele ressourcer, hvilket hjælper med effektiv kommunikation mellem tråde.
På en enkelt processor finder multitasking sted, når processoren skifter mellem forskellige tråde; det er kendt som multithreading. Skiftningen sker så ofte, at tråde eller opgaver opfattes at køre på samme tid. Tråd kan virkelig være samtidige på et multiprocessor eller multi-core system, med hver processor eller kerne, der udfører de separate tråde samtidigt.
Sammenfattende kan tråde betragtes som lette processer, da de indeholder enkle sæt instruktioner og kan køre inden for en større proces. Computere kan køre flere tråde og processer på samme tid.
Sammenligning mellem proces og tråd:
Behandle | Tråd | |
Definition | En eksekverende forekomst af et program kaldes en proces. | En tråd er en delmængde af processen. |
Behandle | Den har sin egen kopi af datasegmentet i overordnet proces. | Den har direkte adgang til datasegmentet i sin proces. |
Meddelelse | Processer skal bruge interprocess kommunikation til at kommunikere med søskende processer. | Tråd kan kommunikere direkte med andre tråde i sin proces. |
Overheads | Processer har betydelige overhead. | Tråd har næsten ingen overhead. |
Skabelse | Nye processer kræver overlapning af moderprocessen. | Nye tråde oprettes nemt. |
Kontrollere | Processer kan kun udøve kontrol over børneprocesser. | Tråd kan udøve betydelig kontrol over tråde af samme proces. |
Ændringer | Enhver ændring i forældreprocessen påvirker ikke børneprocesser. | Enhver ændring i hovedtråden kan påvirke adfærd af de andre tråde i processen. |
Hukommelse | Kør i separate hukommelsesrum. | Kør i delte hukommelsesrum. |
Filbeskrivelser | De fleste filbeskrivere deles ikke. | Det deler filbeskrivelser. |
Filsystem | Der er ingen deling af filsystemkontekst. | Det deler filsystemkontekst. |
Signal | Det deler ikke signalhåndtering. | Det deler signalhåndtering. |
Kontrolleret af | Processen styres af operativsystemet. | Tråde styres af programmør i et program. |
Afhængighed | Processer er uafhængige. | Tråd er afhængige. |