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

Video: Zašto Pthread_cond_wait treba mutex?

Video: Zašto Pthread_cond_wait treba mutex?
Video: Марченко О.І. ПП.Тема 3.Потоки в Linux.Ч3.Cинхронізація (умовні змінні).Producer-Consumer(м’ютекс) 2024, Svibanj
Anonim

The mutex koristi se za zaštitu same varijable uvjeta. Zato ti potreba zaključalo se pred tobom čini čekanje. Zatim kada se varijabla uvjeta signalizira ili emitira, jedna ili više niti na listi čekanja će se probuditi i mutex bit će ponovno čarobno zaključan za tu nit.

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

The pthread_cond_wait () funkcija blokira nit koja poziva 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 s funkcije, mutex ponovno je 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 istovremeno izvršava ključni dio koda, što zauzvrat ograničava pristup strukturi podataka. Osigurava da obje niti imaju pun i ispravan prikaz te memorije bez obzira na bilo kakvo preuređivanje CPU-a. The mutex je apsolutna nužna kada radite istovremeno programiranje.

Osim gore navedenog, zašto varijablama uvjeta trebaju mutex?

The mutex je koristi za zaštitu varijabla stanja sebe. Zato ti potreba zaključalo se pred tobom čini čekanje. Onda kada je varijabla stanja je signalizirano ili emitirano jednoj ili više niti na listi čekanja htjeti buditi se i mutex će biti ponovno čarobno zaključan za tu nit.

Zašto su nam potrebne varijable uvjeta?

Varijable uvjeta dopustite nizu niti da spava dok se ne poškaklja! Možete golicati jednu nit ili sve niti koje spavaju. Ako probudite samo jednu nit tada će operativni sustav odlučiti koju nit će probuditi.

Preporučeni: