Zašto Pthread_cond_wait treba mutex?
Zašto Pthread_cond_wait treba mutex?
Anonim

The mutex koristi se za zaštitu same varijable stanja. Zato ti potreba zaključao se pred tobom uradi čekati. Zatim kada se varijabla stanja signalizira ili emituje, jedna ili više niti na listi čekanja će se probuditi i mutex će biti ponovo magično zaključan za tu nit.

S tim u vezi, da li Pthread_cond_wait otključava mutex?

The pthread_cond_wait () funkcija blokira pozivnu nit na varijablu uvjeta cond, i otključava pridruženi mutex mutex . Pozivna nit mora biti zaključana mutex prije čekanja na varijablu uvjeta. Po povratku iz funkcije, mutex je ponovo zaključan i u vlasništvu je pozivajuće niti.

Nakon toga, postavlja se pitanje zašto je potreban mutex? Osigurava da samo jedna nit izvršava ključni dio koda u isto vrijeme, što zauzvrat ograničava pristup strukturi podataka. Osigurava da obje niti imaju pun i ispravan pregled te memorije bez obzira na bilo kakvo preuređenje CPU-a. The mutex je apsolutna potreba kada se radi paralelno programiranje.

Osim gore navedenog, zašto je uslovnim varijablama potreban mutex?

The mutex je koristi se za zaštitu promenljiva stanja sama. Zato ti potreba zaključao se pred tobom uradi čekati. Onda kada je varijabla stanja je signalizirano ili emitirano jednoj ili više niti na listi čekanja će budite i mutex će biti ponovo magično zaključan za tu nit.

Zašto su nam potrebne varijable uslova?

Varijable uvjeta pustite niz niti da spava dok se ne zagolica! Možete golicati jednu nit ili sve niti koje spavaju. Ako probudite samo jednu nit tada će operativni sistem odlučiti koju nit će probuditi.

Preporučuje se: