Ինչու՞ է Pthread_cond_wait-ին անհրաժեշտ մուտեքս:
Ինչու՞ է Pthread_cond_wait-ին անհրաժեշտ մուտեքս:

Video: Ինչու՞ է Pthread_cond_wait-ին անհրաժեշտ մուտեքս:

Video: Ինչու՞ է Pthread_cond_wait-ին անհրաժեշտ մուտեքս:
Video: ԻՆՉՈՒ Է ԱՂՄԿՈՒՄ ԳԵՏԸ - Հայկական ֆիլմ / INCHU E AGHMKUM GETY - Haykakan Film 2024, Նոյեմբեր
Anonim

Այն mutex օգտագործվում է ինքնին պայմանի փոփոխականը պաշտպանելու համար: Ահա թե ինչու դուք կարիք այն փակվեց քո առջև անել սպասել. Այնուհետև, երբ պայմանի փոփոխականը ազդարարվի կամ հեռարձակվի, սպասման ցուցակի մեկ կամ մի քանի շղթաներ կարթնանան և mutex նորից կախարդական կերպով կփակվի այդ թեմայի համար:

Այս առնչությամբ Pthread_cond_wait-ը բացո՞ւմ է mutex-ը:

Այն pthread_cond_wait () ֆունկցիան արգելափակում է կանչող շարանը պայմանի փոփոխական cond-ի վրա և բացում է հարակից mutex mutex . Զանգահարող շարանը պետք է կողպված լինի mutex պայմանի փոփոխականին սպասելուց առաջ: Գործառույթից վերադառնալիս՝ mutex կրկին կողպված է և պատկանում է կանչող շղթային:

Հետագայում հարց է առաջանում՝ ինչո՞ւ է անհրաժեշտ մութեքսը: Այն ապահովում է, որ միայն մեկ շարանը միաժամանակ կատարում է կոդի հիմնական մասը, որն իր հերթին սահմանափակում է տվյալների կառուցվածքի հասանելիությունը: Այն ապահովում է, որ երկու շղթաներն էլ ունենան այդ հիշողության ամբողջական և պատշաճ տեսք՝ անկախ պրոցեսորի ցանկացած վերադասավորումից: Այն mutex բացարձակ անհրաժեշտություն է միաժամանակյա ծրագրավորում կատարելիս:

Բացի վերը նշվածից, ինչո՞ւ են պայմանի փոփոխականներին անհրաժեշտ mutex:

Այն mutex է օգտագործվում է պաշտպանելու համար պայմանի փոփոխական ինքն իրեն։ Ահա թե ինչու դուք կարիք այն փակվեց ձեր առջև անել սպասել. Այնուհետև, երբ պայմանի փոփոխականն է ազդարարվել կամ հեռարձակվել է սպասման ցուցակի մեկ կամ մի քանի թելերի վրա կամք արթնանալ և mutex կամք նորից կախարդական կերպով կողպեք այդ թելի համար:

Ինչու՞ մեզ պետք են պայմանի փոփոխականներ:

Պայմանների փոփոխականներ թույլ տվեք մի շարք թելեր քնել մինչև թրթռալը: Դուք կարող եք թուլացնել մեկ թելը կամ բոլոր այն թելերը, որոնք քնած են: Եթե դուք արթնացնում եք միայն մեկ շարանը, ապա օպերացիոն համակարգը կորոշի, թե որ շարանը արթնանա:

Խորհուրդ ենք տալիս: