EN tråd er en sti, som følges under et programs udførelse. De fleste programmer, der er skrevet nu om dage, kører som en enkelt tråd. Lad os sige, at et program for eksempel ikke er i stand til at læse tastetryk, mens de laver tegninger. Disse opgaver kan ikke udføres af programmet på samme tid. Dette problem kan løses gennem multitasking, så to eller flere opgaver kan udføres samtidigt. Multitasking er af to typer: Processorbaseret og trådbaseret. Processorbaseret multitasking styres fuldstændig af OS, men multitasking gennem multithreading kan styres af programmøren til en vis grad. Konceptet med multi-threading har brug for en ordentlig forståelse af disse to udtryk – en proces og en tråd . En proces er et program, der udføres. En proces kan yderligere opdeles i uafhængige enheder kendt som tråde. En tråd er som en lille letvægtsproces i en proces. Eller vi kan sige, at en samling af tråde er det, der er kendt som en proces.
Ansøgninger – Trådning bruges i vid udstrækning på næsten alle områder. Mest udbredt ses det over internettet i dag, hvor vi bruger transaktionsbehandling af enhver type, såsom genopladninger, online overførsel, bank osv. Trådning er et segment, der opdeler koden i små dele, der er meget lette og belaster CPU'en mindre. hukommelse, så den let kan udarbejdes og kan nå målet i ønsket felt. Konceptet med gevind er designet på grund af problemet med hurtige og regelmæssige ændringer i teknologi og mindre arbejde på forskellige områder på grund af mindre anvendelse. Så som det siges, er behovet for skabelse eller innovation, og derfor udvikler menneskets sind begrebet tråd ved at følge denne tilgang for at forbedre programmeringsevnen.
sorteret tuple python
Livscyklus af en tråd
Der er forskellige stadier i en tråds livscyklus. Følgende er de stadier, en tråd gennemgår i hele sit liv.
- Ny: Livscyklussen for en født tråd (ny tråd) starter i denne tilstand. Det forbliver i denne tilstand, indtil et program starter.
- Kørbar : En tråd kan køres, når den er startet. Den anses for at udføre den opgave, den er pålagt.
- Venter : Mens man venter på, at en anden tråd skal udføre en opgave, går den tråd, der kører i øjeblikket, i ventetilstand og skifter derefter tilbage igen efter at have modtaget et signal fra den anden tråd.
- Tidsbestemt ventetid: En løbbar tråd går ind i denne tilstand for et bestemt tidsinterval og går derefter tilbage, når tidsintervallet udløber, eller den begivenhed, tråden ventede på, indtræffer.
- Afsluttet (død) : En tråd kommer ind i denne tilstand efter at have fuldført sin opgave.
Typer af udførelse i OS
Der er to typer udførelse:
panda smelter
- Samtidig udførelse: Dette sker, når en processor har succes med at skifte ressourcer mellem tråde i en flertrådsproces på en enkelt processor.
- Parallel udførelse: Dette sker, når hver tråd i processen kører på en separat processor på samme tid og i den samme flertrådede proces
Ulemper ved Multithreading
Multithreading er komplekst og mange gange svært at håndtere. Det har et par ulemper. Disse er:
- Hvis du ikke bruger låsemekanismerne korrekt, mens du undersøger problemer med dataadgang, er der en chance for, at der opstår problemer som datainkonsistens og dødlås.
- Hvis mange tråde forsøger at få adgang til de samme data, så er der en chance for, at situationen med trådsult kan opstå. Problemer med ressourcestridigheder er et andet problem, der kan genere brugeren.
- Visningsproblemer kan opstå, hvis tråde mangler koordinering ved visning af data.
Fordele ved multithreading:
- Multithreading kan forbedre ydeevnen og effektiviteten af et program ved at udnytte de tilgængelige CPU-ressourcer mere effektivt. Ved at udføre flere tråde samtidigt, kan det drage fordel af parallelitet og reducere den samlede eksekveringstid.
- Multithreading kan øge reaktionsevnen i applikationer, der involverer brugerinteraktion. Ved at adskille tidskrævende opgaver fra hovedtråden, kan brugergrænsefladen forblive responsiv og ikke fryse eller blive uresponsiv.
- Multithreading kan muliggøre bedre ressourceudnyttelse. For eksempel i en serverapplikation kan flere tråde håndtere indkommende klientanmodninger samtidigt, hvilket gør det muligt for serveren at betjene flere klienter samtidigt.
- Multithreading kan lette en bedre kodeorganisering og modularitet ved at opdele komplekse opgaver i mindre, håndterbare udførelsesenheder. Hver tråd kan håndtere en bestemt del af opgaven, hvilket gør koden lettere at forstå og vedligeholde.