Эмне үчүн Pthread_cond_wait мутекске муктаж?
Эмне үчүн Pthread_cond_wait мутекске муктаж?

Video: Эмне үчүн Pthread_cond_wait мутекске муктаж?

Video: Эмне үчүн Pthread_cond_wait мутекске муктаж?
Video: Эмне үчүн китеп окуу керек? (Сиз билбеген пайдалар) 2024, Май
Anonim

The мутекс шарт өзгөрмөнүн өзүн коргоо үчүн колдонулат. Ошон үчүн сен керек ал сенин алдыңда кулпуланган кыл күтүү. Андан кийин шарт өзгөрмөсүнө сигнал берилгенде же уктурууда, күтүү тизмесиндеги бир же бир нече жип ойгонот жана мутекс ошол жип үчүн кайрадан сыйкырдуу түрдө кулпуланат.

Буга байланыштуу, Pthread_cond_wait мутекстин кулпусун ачабы?

The pthread_cond_wait () функциясы конд шарт өзгөрмөсүндөгү чакыруучу жипти бөгөттөйт жана кулпусун ачат байланышкан mutex mutex . Чакырылган жип кулпуланган болушу керек мутекс шарт өзгөрмө күтүүдөн мурун. Функциядан кайтып келгенде, мутекс кайра кулпуланган жана чакыруучу жипке таандык.

Андан кийин суроо туулат, эмне үчүн мутекс керек? Ал бир убакта бир гана жип коддун негизги бөлүгүн аткарып жатканын камсыздайт, ал өз кезегинде маалымат структурасына кирүү мүмкүнчүлүгүн чектейт. Бул эки жиптин ар кандай CPU иреттөөсүнө карабастан, ошол эстутумдун толук жана туура көрүнүшүн камсыздайт. The мутекс параллелдүү программалоодо абсолюттук зарылчылык болуп саналат.

Жогорудагыдан тышкары, эмне үчүн шарт өзгөрмөлөрү мутекске муктаж?

The мутекс болуп саналат коргоо үчүн колдонулат шарт өзгөрмө өзү. Ошон үчүн сен керек ал сенин алдыңда кулпуланган кыл күтүү. Анан качан шарт өзгөрмө болуп саналат күтүү тизмесиндеги бир же бир нече жиптерге сигнал берилген же уктуруу болот ойгонуу жана mutex болот ошол жип үчүн сыйкырдуу түрдө кайрадан кулпуланган.

Эмне үчүн бизге шарт өзгөрмөлөрү керек?

Шарт өзгөрмөлөрү жиптердин топтомун кытыгылаганга чейин уктоого уруксат бер! Сиз бир жипти же уктап жаткан бардык жиптерди кытыгылай аласыз. Эгер сиз бир жипти гана ойготсоңуз, анда операциялык система кайсы жипти ойготууну чечет.

Сунушталууда: