..
Alle moderne operativsystemer ta år å bli en modell av multi-process management, tildele kjøretid og minne plass til ulike programmer kjører samtidig. I de senere årene, hovedsakelig på grunn av Gjennomtrengningskraft nettverkskommunikasjon, har dette konseptet blitt utvidet til den enkelte programvaren, dele den samme prosessen flere strømmer av kontroll de tråder. Denne nye tilnærmingen bringer enorme endringer i strukturen av programvare, både i teori og praksis, som alltid skjer, modularitet og ekspressivitet er betalt i form av økt programvare kompleksitet.
Den programmeringsspråk siste, fra Java, alle tilbyr innfødte APIer for å lage og administrere emner; systemer basert på virtuelle maskiner som Java og C # har utvikleren et nivå av abstraksjon konsekvent i denne saken og alle andre må stole på primitive av operativsystemet, ofte pådra seg problemer av portabilitet av kode. I denne sammenheng bibliotekene er en del av POSIX tråder (Pthreads) for å tillate C utviklere også en minimum garanti for mobilitet mellom ulike systemer.
Denne artikkelen er rettet mot alle som ønsker å nærme seg temaet samtidige programmering på lavt nivå språk. I denne presentasjonen forutsetter at leseren allerede har skaffet seg en grunnleggende kjennskap til C-språk vil ikke bli behandlet som grunnleggende emner som for eksempel, minnehåndtering og datatyper.
Like lett gjettet fra navnet, POSIX tråd bibliotekene er en del av settet med POSIX (Portable Operating System Interface [for Unix]). Siterer definisjonen "pthread [...] spesifiserer et sett av grensesnitt (funksjoner, header-filer) for gjenger programmering prosessen til single [...] kan inneholde flere tråder, som alle utfører undersøkelsen program [...] samme andel globale minne (data og haug segmenter), men dens Hver tråd har egen stack. " Dette utdraget beskriver nøyaktig hva som er involvert i multi-programmering i et POSIX-tråder:
Bruk POSIX standarden gir en høy grad av integrasjon på tvers av alle POSIX-kompatible systemer som for eksempel GNU / Linux, Mac OSX, BSD og til og med Windows (med noen tillegg). Gjennom denne artikkelen vil vi referere til bruken av GCC under GNU / Linux, selvfølgelig, er alle hensyn videreføres til andre POSIX-lignende miljø.
Den pthread.h Biblioteket inneholder alt du trenger for programmering i et multi-tråder, snarere enn å gjøre bare en liste over de primitive oppgitt, vil vi presentere et praktisk eksempel fra tid til annen ved å diskutere deres forskjeller.
Så vurdere følgende problem: programmet må lese fra bankoverføring flere filer av plukking og / eller innskudd for å bli gjort til en konto, så disse filene vil ha følgende form:
120 -550 896 5541 -85 ...Å øke hastigheten på forskjellige tråder "cashier" hver operere på en enkelt fil og oppdatert samtidig kundens konto, utførte vi alle operasjoner i produksjonen status av kontoen.
| |
ASP (Advanced)
Full kurs for å lage dynamiske nettsider. Fra € 39. |
| |
Brenne CDer og DVDer (Ebook)
Guide til å brenne CDer og DVDer med freeware programmer. Bare 25 €. |
| |
OpenOffice (Ebook)
The open-source programvare for å administrere kontorarbeid. Bare 25 €. |