Hva skjer når en Enebolig Tråd samtaler Exit Function?

Dataprogrammer kan utføre flere kodeblokker samtidig gjennom programmet samtidighet. Dette gir stor fleksibilitet ved at programmer kan håndtere forespørsler eller data separat fra hovedprogrammet uten å påvirke utføringen av selve programmet. Programmer gjør dette ved hjelp av gjenger. Ledelsen av disse gjengene utførelse omfatter forvaltning av sine ressurser og hvordan programmet har til hensikt å overvåke dem. En forskjell mellom hvordan et program holder trådene er representert i forskjellen mellom "joinable" og "frittliggende" tråder.

tråder

I dataprogrammering, refererer "flertrådet" eller "samtidig" programmering til teknikken med å opprette separate tråder av henrettelse i samme program. Hver tråd i et program utfører noen kode sammen med de andre tråder i det programmet, slik at flere blokker av kode kjøres samtidig. Når et program begynner, er det alltid en tråd, "" hovedtråden, hvorfra andre tråder kan gyte til å håndtere andre kodeblokker.

join tråder

Med forskjellige tråder som kjører samtidig innenfor det samme program, blir tråden vedlikehold avgjørende. En måte å opprettholde tråder er å bruke "delta" evner. Join tråder kjøre sammen med de andre tråder av et program, som er typisk for tråder. Men hovedtråden vente med å slutte seg til gytt tråden. Hovedtråden, i stedet for å utføre mer kode, kan du bruke delta funksjon av tråden for å tillate en annen tråd til å fullføre sin oppgave. Den gytt tråd, en gang ferdig, returnerer en exit-kode signaliserer en normal exit eller en feil, og hovedtråden gjenopptar utførelsen.

Frittliggende tråder

Frittliggende tråder fungerer litt annerledes. Når en tråd eksplisitt løsrevet fra dens hovedtråden, har den ikke lenger tilkobling til den tråden. Tråden går og utganger som alle andre tråden, og deretter avsluttes når du er ferdig. Hovedtråden kan ikke overvåke gytt tråden. Den gytt tråden opphører når du er ferdig, noe som betyr at hovedtråden trenger ikke å eksplisitt delta med tråden senere i programmet.

Oppløsning av Running tråder

Bli med og løsne tråder tillate to forskjellige moduser av tråden ledelse. Ved å la en tråd som joinable, kan programmereren tvinge programmet til å bli med tråden senere i kjøring. Dette delta må skje for å frigjøre de ressursene som brukes av gytt tråden, som stack og heap minne. En frittliggende tråd, når enebolig, utfører inntil ferdig, og systemet gjenvinner brukte ressurser automatisk. Men hovedtråden ikke sjekke status på en frittliggende tråd gjennom et delta. Derfor ikke hovedprogrammet vet ikke om en gytt, frittliggende tråd fullført sin oppgave med hell, fordi det aldri får en exit-kode fra tråden.