Pthread_cond_wait неге мутекс қажет?
Pthread_cond_wait неге мутекс қажет?

Бейне: Pthread_cond_wait неге мутекс қажет?

Бейне: Pthread_cond_wait неге мутекс қажет?
Бейне: How To Achieve Synchronization In C# While Doing Async Await Multithreaded Programming - .NET Core 2024, Мамыр
Anonim

The мутекс шарт айнымалысының өзін қорғау үшін қолданылады. Сондықтан сен қажет ол сіздің алдыңызда жабылды істеу күту. Содан кейін шарт айнымалысына сигнал берілгенде немесе оған таратылғанда, күту тізіміндегі бір немесе бірнеше ағындар оянады және мутекс сол ағын үшін қайтадан сиқырлы түрде құлыпталады.

Осыған байланысты Pthread_cond_wait мутекс құлпын ашады ма?

The pthread_cond_күту () функциясы cond шартының айнымалы мәніндегі шақырушы ағынды блоктайды және құлпын ашады байланысты мутекс мутекс . Қоңырау шалушы ағын құлыпталған болуы керек мутекс шарт айнымалысын күтпес бұрын. Функциядан қайтып келгенде, мутекс қайтадан құлыпталады және шақырушы ағынға тиесілі.

Содан кейін сұрақ туындайды, неге мутекс қажет? Ол бір уақытта тек бір ағын кодтың негізгі бөлігін орындауын қамтамасыз етеді, бұл өз кезегінде деректер құрылымына қол жеткізуді шектейді. Ол кез келген процессордың ретін өзгертуіне қарамастан екі ағынның да сол жадтың толық және дұрыс көрінісін қамтамасыз етеді. The мутекс бір мезгілде бағдарламалау кезінде абсолютті қажеттілік болып табылады.

Жоғарыда көрсетілгеннен басқа, шарт айнымалыларына неге мутекс қажет?

The мутекс болып табылады қорғау үшін қолданылады шарт айнымалысы өзі. Сондықтан сен қажет ол сіздің алдыңызда жабылды істеу күту. Содан кейін қашан шарт айнымалысы болып табылады күту тізіміндегі бір немесе бірнеше ағындарға сигнал беріледі немесе таратылады ерік ояту және mutex болады сол ағын үшін қайтадан сиқырлы түрде құлыпталады.

Шартты айнымалылар бізге не үшін қажет?

Шартты айнымалылар жіптер жинағын қытықталғанша ұйықтауға рұқсат етіңіз! Сіз бір жіпті немесе ұйықтап жатқан барлық жіптерді қытықтай аласыз. Егер сіз тек бір ағынды оятсаңыз, операциялық жүйе қай ағынды оятуды шешеді.

Ұсынылған: