? Dataprogrammer kan utføre flere kodeblokker samtidig gjennom programmet samtidighet . Dette gir en stor grad av fleksibilitet , ved at programmer kan håndtere forespørsler eller data separat fra hovedprogrammet uten å påvirke gjennomføringen av selve programmet. Programmer gjøre dette ved bruk av gjenger . Forvaltningen av disse tråder gjennomføring omfatter forvaltning av sine ressurser og hvordan programmet har til hensikt å overvåke dem . En forskjell mellom hvordan et program opprettholder tråder er representert i forskjellen mellom " joinable " og " frittliggende " tråder . Tråder
I dataprogrammering , refererer " flertrådet " eller "samtidig " programmering til teknikken med å lage separate tråder gjennomføring i samme program . Hver tråd i et program utfører noen kode sammen med de andre tråder i OE, slik at flere kodeblokker som kjøres samtidig . Når et program starter , er det alltid en tråd , den " viktigste" tråden, som andre tråder kan gyte til å håndtere andre blokker med kode.
Joinable tråder
< p > 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 på "Bli medlem " evner . Joinable tråder løpe sammen med de andre tråder av et program, som er typisk av tråder . Imidlertid kan hovedtråden vente med å bli med gytt tråden. Hovedtråden , i stedet for å kjøre mer kode , kan bruke join funksjon av tråden for å la en annen tråd til å fullføre sin oppgave . Den gytt tråden, en gang ferdig , returnerer en exit-kode signaliserer en normal exit eller en feil , og hovedtråden gjenopptar utførelsen .
Bilder Frittliggende tråder
Enebolig tråder fungerer litt annerledes . Når en tråd er eksplisitt løsrevet fra sin hovedtråden , ikke lenger har tilknytning 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 hovedtråden trenger ikke å eksplisitt delta med tråden senere i programmet .
Oppløsning av Running tråder
Delta i og løsne tråder tillater to forskjellige gjenger ledelse. Ved å la en tråd som joinable , kan programmereren tvinge programmet til å delta med tråden senere i utførelsen. Dette join må være å frigjøre de ressursene som brukes av gytt tråden , for eksempel stack og heap minne. En frittliggende tråd , når frittliggende, utfører inntil ferdig , og systemet automatisk gjenvinner den brukte ressurser . Imidlertid kan hovedtråden ikke sjekke status på en frittliggende tråd gjennom et delta . Derfor ikke hovedprogrammet ikke om en gytt , frittliggende tråd fullført sin oppgave med hell , fordi det aldri får en exit -kode fra tråden .