Miksi Pthread_cond_wait tarvitsee mutexin?
Miksi Pthread_cond_wait tarvitsee mutexin?

Video: Miksi Pthread_cond_wait tarvitsee mutexin?

Video: Miksi Pthread_cond_wait tarvitsee mutexin?
Video: Кораль. Жизнь лесотундры Вынгаяхи 2. 2024, Marraskuu
Anonim

The mutex käytetään suojaamaan itse ehtomuuttujaa. Siksi sinä tarve se lukittui edessäsi tehdä odotus. Sitten kun ehtomuuttuja signaloidaan tai lähetetään, yksi tai useampi odotuslistalla olevista säikeistä herätetään ja mutex lukittuu jälleen taianomaisesti tälle ketjulle.

Avaako Pthread_cond_wait mutexin tämän suhteen?

The pthread_cond_wait ()-funktio estää kutsuvan säikeen ehtomuuttujassa cond, ja avaa lukituksen liittyvät mutex mutex . Kutsuvan säikeen on täytynyt olla lukittu mutex ennen kuin odotat ehtomuuttujaa. Palattuaan funktiosta, mutex on jälleen lukittu ja kutsuvan säikeen omistama.

Myöhemmin kysymys kuuluu, miksi mutexia tarvitaan? Se varmistaa, että vain yksi säie suorittaa avainkoodia kerrallaan, mikä puolestaan rajoittaa pääsyä tietorakenteeseen. Se varmistaa, että molemmilla säikeillä on täysi ja oikea näkymä kyseisestä muistista riippumatta suorittimen uudelleenjärjestelystä. The mutex on ehdoton välttämättömyys suoritettaessa samanaikaista ohjelmointia.

Yllä olevan lisäksi, miksi ehtomuuttujat tarvitsevat mutexia?

The mutex on käytetään suojelemaan ehtomuuttuja itse. Siksi sinä tarve se lukittui edessäsi tehdä odotus. Sitten kun ehtomuuttuja on signaloitu tai lähetetty yhdelle tai useammalle odotuslistalla olevalle säikeelle tahtoa herätä ja mutex tulee lukittuu jälleen taianomaisesti tälle ketjulle.

Miksi tarvitsemme ehtomuuttujia?

Ehtojen muuttujat anna lankojen nukkua, kunnes kutittelet! Voit kutittaa yhtä lankaa tai kaikkia unissa olevia lankoja. Jos herätät vain yhden säikeen, käyttöjärjestelmä päättää, mikä säie herättää.

Suositeltava: