Kwa nini Pthread_cond_wait inahitaji bubu?
Kwa nini Pthread_cond_wait inahitaji bubu?

Video: Kwa nini Pthread_cond_wait inahitaji bubu?

Video: Kwa nini Pthread_cond_wait inahitaji bubu?
Video: HIZI NI DALILI ZA HATARI UKIZIONA KWA MTOTO | AFYA PLUS 2024, Mei
Anonim

The bubu hutumika kulinda utofauti wa hali yenyewe. Ndio maana wewe haja imefungwa mbele yako fanya kusubiri. Halafu utofauti wa hali unapotiwa saini au kutangazwa, nyuzi moja au zaidi kwenye orodha ya kungojea itaamshwa na bubu itafungwa kichawi tena kwa uzi huo.

Kuhusiana na hili, je Pthread_cond_wait inafungua mutex?

The pthread_cond_subiri () kazi huzuia uzi wa kupiga simu kwenye hali ya kutofautisha ya hali, na hufungua inayohusishwa bubu bubu . Uzi wa kupiga simu lazima uwe umefungwa bubu kabla ya kusubiri juu ya kutofautiana kwa hali. Unaporudi kutoka kwa chaguo la kukokotoa, the bubu imefungwa tena na inamilikiwa na uzi wa kupiga simu.

Baadaye, swali ni, kwa nini bubu inahitajika? Inahakikisha kwamba ni thread moja tu inayotekeleza sehemu kuu ya msimbo kwa wakati mmoja, ambayo inazuia ufikiaji wa muundo wa data. Inahakikisha kwamba nyuzi zote mbili zina mwonekano kamili na sahihi wa kumbukumbu hiyo bila kujali upangaji upya wa CPU. The bubu ni hitaji kabisa wakati wa kufanya programu kwa wakati mmoja.

Kando na hapo juu, kwa nini anuwai za hali zinahitaji mutex?

The bubu ni kutumika kulinda kutofautiana kwa hali yenyewe. Ndio maana wewe haja imefungwa mbele yako fanya kusubiri. Kisha wakati kutofautiana kwa hali ni iliyosainiwa au kutangazwa kwa, moja au zaidi ya nyuzi kwenye orodha ya wanaosubiri mapenzi kuamshwa na bubu mapenzi fungiwe kichawi tena kwa uzi huo.

Kwa nini tunahitaji vigezo vya hali?

Vigezo vya hali kuruhusu seti ya nyuzi kulala hadi tickled! Unaweza kutikisa uzi mmoja au nyuzi zote zinazolala. Ikiwa utaamsha thread moja tu basi mfumo wa uendeshaji utaamua ni thread gani ya kuamsha.

Ilipendekeza: