Nima uchun Pthread_cond_wait mutexga muhtoj?
Nima uchun Pthread_cond_wait mutexga muhtoj?

Video: Nima uchun Pthread_cond_wait mutexga muhtoj?

Video: Nima uchun Pthread_cond_wait mutexga muhtoj?
Video: How To Achieve Synchronization In C# While Doing Async Await Multithreaded Programming - .NET Core 2024, May
Anonim

The mutex shart o'zgaruvchining o'zini himoya qilish uchun ishlatiladi. Shuning uchun siz kerak u sizning oldingizda qulflangan qil kutish. Keyin shart o'zgaruvchisi signal berilganda yoki unga uzatilganda, kutish ro'yxatidagi bir yoki bir nechta mavzular uyg'onadi va mutex o'sha ip uchun yana sehrli tarzda qulflanadi.

Bu borada Pthread_cond_wait mutexni qulfdan chiqaradimi?

The pthread_cond_wait () funktsiyasi shart o'zgaruvchisi bo'yicha chaqiruvchi ipni bloklaydi cond va qulfni ochadi bog'langan mutex mutex . Qo'ng'iroq qiluvchi ip qulflangan bo'lishi kerak mutex shart o'zgaruvchini kutishdan oldin. Funktsiyadan qaytgach, mutex yana qulflangan va chaqiruvchi ipga tegishli.

Keyinchalik savol tug'iladi, nima uchun mutex kerak? Bu bir vaqtning o'zida faqat bitta ipning asosiy kod qismini bajarishini ta'minlaydi, bu esa o'z navbatida ma'lumotlar strukturasiga kirishni cheklaydi. Bu har qanday protsessorni qayta tartiblashdan qat'i nazar, ikkala ish zarrachasi ham ushbu xotiraning to'liq va to'g'ri ko'rinishini ta'minlaydi. The mutex bir vaqtda dasturlashni amalga oshirishda mutlaq zaruratdir.

Yuqoridagilardan tashqari, nima uchun shart o'zgaruvchilari mutexga muhtoj?

The muteks hisoblanadi himoya qilish uchun ishlatiladi shart o'zgaruvchisi o'zi. Shuning uchun siz kerak u sizning oldingizda qulflangan qil kutish. Keyin qachon shart o'zgaruvchisi kutish ro'yxatidagi bir yoki bir nechta mavzularga signal berilgan yoki efirga uzatilgan bo'ladi uyg'onish va mutex bo'ladi bu mavzu uchun yana sehrli tarzda qulflangan bo'ling.

Nima uchun shart o'zgaruvchilari kerak?

Shartli o'zgaruvchilar iplar to'plamini qitiqlaguncha uxlashiga ruxsat bering! Siz bitta ipni yoki uxlayotgan barcha iplarni qitiqlashingiz mumkin. Agar siz faqat bitta ipni uyg'otsangiz, operatsion tizim qaysi ipni uyg'otish kerakligini hal qiladi.

Tavsiya: