POSIX-lanka:
Linux-käyttöjärjestelmissä C- ja C ++ -kielet pthread-standardin API: n kaikenlaisille ketjuihin liittyville toiminnoille. Se tunnetaan myös POSIX-ketjuna, jonka avulla käyttäjät voivat luoda useita ketjuja samanaikaisille prosesseille. Sitä käytetään parhaiten moniydinsysteemeissä tai prosessoreissa ketjujen toteuttamiseksi ytimessä järjestelmän saavuttamiseksi.
Toteutus:
Tämä pthread on välttämätön.h otsikkotiedosto komentosarjassa. Tämä auttaa käyttämään pthreads-kirjaston toimintoja. Suorita c-tiedosto seuraavilla komennoilla
$ cc -säikeistiedosto.c
TAI
$ cc -lpthread-tiedosto.c
Pthreads-kirjastossa määritetyt toiminnot voivat sisältää:
pthread_create:
Sitä käytetään uuden ketjun luomiseen
Parametrit pthread_create:
Sillä on seuraavat parametrit:
lanka: Tämä toimii osoittimena allekirjoittamattomalle kokonaisluvulle. Se palauttaa muodostetun langan ketjutunnuksen.
määritteet: Tämä parametri toimii rakenteen osoittimena. Sitä käytetään määrittelemään ketjun attribuutit, jotka voivat olla ajoituspolitiikkaa ja pinon osoitetta jne.
start_routine: Tämä parametri on osoitus langan toteuttamaan aliohjelmaan.
Perustelu: Tämä parametri on osoitus mitätöidä eri argumenteilla kuin argumentti, joka on määritelty argumentin alussa
Syntaksi:
>> int pthread_create(pthread_t * säie, const pthread_attributes_t * attr, void * (* start_routine) (void *), void * argumentti);
pthread_exit:
Sitä käytetään langan päättämiseen tai lopettamiseen
Parametrit pthread_exit:
Menetelmän / prosessin lopussa käytetty menetelmä hyväksyy parametrin uudelleenkäynnistyksen, joka on pakollinen indikaattori kokonaisluvulle. Se tallentaa langan tilan siten, että ketju päättyy. Sen on oltava globaali muuttuja. Tämä sallii seuraavan rivin langan liittyä ketjuun, jos se on käytettävissä.
Syntaksi:
>> void pthread_exit (void * retval);pthread_join:
Tätä toimintoa käytetään odottamaan langan päättymistä.
Parametrit pthread_join:
Tässä käytetty parametri on:
thread_id: Se on sen langan tunnus, jota jonossa oleva säie odottaa.
thread_return: Se on parametri, joka toimii osoittimena tiettyyn paikkaan, jossa olemme määrittäneet poistumistilan.
Syntaksi:
>> int pthread_join (pthread_t langan tunnistus, mitätön ** thread_return);pthread_self:
Tätä menetelmää käytetään saamaan tällä hetkellä linjassa olevan ketjun tunnus.
Syntaksi:
>> pthread_t pthread_self (mitätön);pthread_equal:
Tätä menetelmää käytetään vertailuun, jos kaksi säiettä on samanarvoinen tai ei. Jos kaksi säiettä on samanlaisia, funktio palauttaa vastauksena muun arvon kuin nollan.
Syntaksi:
>> int pthread_equal (pthread_t thread1, pthread_t thread2);pthread_cancel:
Tätä tapaa käytetään peruutuspyynnön lähettämiseen
Parametri pthread_cancel:
Käytetty parametri on pakollinen, jotta pyyntö voidaan peruuttaa.
Syntaksi:
>> int pthread_cancel (pthread_t threadName);pthread_detach:
Tätä menetelmää käytetään langan erottamiseen. Se ei tarvitse mitään ketjua liittyäkseen päätökseen. Kaikki säikeessä käynnissä olevat resurssit vapautetaan heti, kun säie irtoaa.
Parametri pthread_detachr:
Parametri hyväksyy pakollisen parametrilanka-idean. Se on pakko irrottaa.
Syntaksi:
>> int pthread_detach (pthread_t-lanka);Näytekoodi:
Tässä on esimerkkikoodi, joka näyttää yllä kuvatun toiminnon toteutuksen. Käytimme gcc-kääntäjää näiden toimintojen kääntämiseen.
// Ohjelma näyttää ketjutoiminnot#sisältää
#sisältää
#sisältää
// Soitetaan POSIX-säikeelle, joka on pakollinen UNIX / LINUX-järjestelmissä
pthread_t tid [2];
void * Funktio (void * arg)
allekirjoittamaton pitkä i = 0;
pthread_t id = pthread_self ();
if (pthread_equal (id, tid [0]))
// Ehto säikeille, jotka ovat samat
printf ("\ n Ensimmäistä ketjua käsitellään \ n");
muu
printf ("\ n Toista ketjua käsitellään \ n");
// Langat käsitellään.
varten (i = 0; i<(0x255);i++);
paluu NULL;
int main (mitätön)
int i = 0;
int-virhe;
// Uuden ketjun luominen
sillä aikaa kun minä < 2)
virhe = pthread_create (& (tid [i]), NULL, & Function, NULL);
jos (virhe != 0)
printf ("\ n Ei onnistunut luomaan ketjua: [% s]", virhe (virhe));
muu
printf ("\ n säie on luotu onnistuneesti \ n");
// Viestiketju luotiin
i ++;
uni (5);
paluu 0;
Koodi kirjoitetaan tekstieditorissa; voit käyttää mitä tahansa editoria valintasi mukaan. Tallenna se sitten suosikkipaikkaasi.
Tiedosto tallennetaan tietokonejärjestelmään ja sitä käytetään sitten. Meidän tallentamamme tiedosto nimettiin testiksi.c. Voit käyttää sitä kirjoittamalla seuraava komennon pääteikkunaan:
$ sudo gcc -testi.c -lanka
Suorita seuraava lähtö kirjoittamalla seuraava komento:
$ ./ a.ulos
Odotettu tuotos:
Tulos, jonka saimme vastauksena edelliseen koodiin, näkyy alla:
Päätelmä:
Opetusohjelma käsitteli ketjun luomisen perusprosessia ja käsitteli kaikkia sen luomisessa yleisesti käytettyjä menetelmiä. Lanka on prosessin esiintymä. Opastimme sitten käyttäjät läpi jokaisen prosessin käyttämät kuuluisat parametrit ja syntaksit, jotta he voivat käyttää niitä tietokoneohjelmissaan. Täällä jaoimme myös esimerkkikoodin esimerkkinä ymmärtääksemme paremmin ajatuksen C-ohjelman luomisesta POSIXissa. Kääntäjä, jota käytimme, oli gcc Linux-järjestelmässä. Käyttäjät voivat valita minkä tahansa muun kääntäjän myös mieltymystensä perusteella.