POSIX-niit:
Linuxi platvormidel ühendavad C ja C ++ keel standardse API igasuguste lõimega seotud funktsioonide jaoks. Seda tuntakse ka kui POSIX-lõime, mis võimaldab kasutajatel luua palju lõime samaaegsete protsesside voolamiseks. Seda on kõige parem kasutada mitmetuumalistes süsteemides või protsessorites, et rakendada tuuma lõime süsteemi saavutamiseks.
Rakendamine:
See pthread on vajalik lisada.h päisefail algselt skriptis. See aitab kasutada pthreadsi teegi funktsioone. C-faili käivitamiseks toimige järgmiselt
$ cc -pthread fail.c
VÕI
$ cc -lpthread fail.c
Pthreadsi teegis määratletud funktsioonid võivad hõlmata järgmist:
pthread_create:
Seda kasutatakse uue lõime loomiseks
Pthread_create parameetrid:
Sellel on järgmised parameetrid:
niit: See toimib allkirjastamata täisarvu osutajana. See tagastab moodustatud lõime lõime ID.
atribuudid: See parameeter toimib struktuuri osutajana. Seda kasutatakse lõime atribuutide määratlemiseks, mis võivad olla ajastamise ja virna aadressi poliitikad jne.
algusruut: See parameeter osutab lõime rakendatud alamprogrammile.
argument: See parameeter osutab argumendi alguses eelnevalt määratud funktsioonile erinevate argumentidega tühistamiseks
Süntaks:
>> int pthread_create(pthread_t * niit, const pthread_attributes_t * attr, void * (* start_routine) (void *), void * argument);
pthread_exit:
Seda kasutatakse lõime lõpetamiseks või lõpetamiseks
Pthread_exit parameetrid:
Meetodi / protsessi lõpus kasutatud meetod aktsepteerib parameetri taaskäivitamist, mis on täisarvu kohustuslik näitaja. See salvestab lõime oleku nii, et lõng lõpeb. See peab olema globaalne muutuja. See võimaldab järgmisel lõimal liituda lõimega, kui see on saadaval.
Süntaks:
>> void pthread_exit (void * retval);pthread_join:
Seda funktsiooni kasutatakse lõime lõpetamise ootamise ajal.
Pthread_join parameetrid:
Siin kasutatakse parameetrit:
thread_id: See on selle lõime ID, mida lõime reas ootab.
thread_return: See on parameeter, mis toimib viitena konkreetsele asukohale, kus oleme määratlenud väljumisoleku.
Süntaks:
>> int pthread_join (pthread_t thread_identification, void ** thread_return);pthread_self:
See on meetod, mida kasutatakse hetkel joone id-i saamiseks.
Süntaks:
>> pthread_t pthread_self (tühine);pthread_equal:
Seda meetodit kasutatakse võrdlemiseks juhul, kui kaks lõime on samaväärsed või mitte. Kui kaks lõime on ühesugused, tagastab funktsioon vastuseks muu väärtuse kui null.
Süntaks:
>> int pthread_equal (pthread_t lõime1, pthread_t lõime2);pthread_cancel:
Seda meetodit kasutatakse tühistamistaotluse saatmiseks
Parameeter pthread_cancel:
Taotluse tühistamiseks on vajalik parameeter sisestada.
Süntaks:
>> int pthread_cancel (pthread_t threadName);pthread_detach:
Seda meetodit kasutatakse lõime eraldamiseks. See ei vaja lõpetamiseks liitumiseks ühtegi lõime. Kõik lõimes töötavad ressursid vabastatakse kohe, kui niit on lahti ühendatud.
Parameeter pthread_detachr:
See parameeter aktsepteerib kohustusliku parameetri lõime ID. See peab olema eraldatud.
Süntaks:
>> int pthread_detach (lõime pthread_t);Näidiskood:
Siin on näide koodist, mis näitab ülalkirjeldatud funktsiooni rakendamist. Nende funktsioonide kompileerimiseks kasutasime gcc kompilaatorit.
// Programm lõime funktsioonide kuvamiseks# kaasata
# kaasata
# kaasata
// POSIX-lõime kutsumine, must-have UNIX / LINUX süsteemides
pthread_t tid [2];
void * Funktsioon (void * arg)
allkirjastamata pikk i = 0;
pthread_t id = pthread_self ();
kui (pthread_equal (id, tid [0]))
// Tingimus, et niidid oleksid võrdsed
printf ("\ n Esimest lõime töödeldakse \ n");
muud
printf ("\ n Teist lõime töödeldakse \ n");
// Töödeldavad lõimed.
jaoks (i = 0; i<(0x255);i++);
return NULL;
int main (tühine)
int i = 0;
int viga;
// Uue lõime loomine
kuni ma < 2)
tõrge = pthread_create (& (tid [i]), NULL ja & Function, NULL);
kui (viga != 0)
printf ("\ n Teemat ei õnnestunud luua: [% s]", strerror (tõrge));
muud
printf ("\ n lõime loomine õnnestus \ n");
// Lõng edukalt loodud
i ++;
uni (5);
tagastama 0;
Kood kirjutatakse tekstiredaktoris; võite kasutada mis tahes redaktorit vastavalt teie valikule. Seejärel salvestage see oma lemmikkohta.
Fail salvestatakse arvutisüsteemi ja seejärel avatakse see. Meie salvestatud faili nimi oli test.c. Sellele juurdepääsu saamiseks sisestage terminaliaknas järgmine käsk:
$ sudo gcc test.c -lõng
Järgmisena tippige väljundi käivitamiseks järgmine käsk:
$ ./ a.välja
Eeldatav väljund:
Väljund, mille saime vastuseks eelmisele koodile, on näidatud allpool:
Järeldus:
Õpetus hõlmas lõime loomise põhiprotsessi ja käsitles kõiki selle loomisel tavaliselt kasutatavaid meetodeid. Teema on protsessi eksemplar. Seejärel tutvustasime kasutajatel kuulsaid parameetreid, mida iga protsess kasutas koos süntaksitega, et nad saaksid neid oma arvutiprogrammides kasutada. Jagasime siin näidisena ka näidiskoodi, et paremini mõista ideed luua C-programm POSIX-is. Meie kasutatud kompilaator oli Linuxi süsteemis gcc. Kasutajad saavad oma eelistuste põhjal valida ka mõne muu kompilaatori.