Mutekslar yordamida umumiy ma'lumotlarni himoya qilish. Oqimlar massivi
Mutekslar yordamida umumiy ma'lumotlarni himoya qilish. Oqimlar massivi
Mutekslar yordamida umumiy ma'lumotlarni himoya qilish.
Mutex nima? Muteks("mutual exclusion" - o'zaro istisno) asosiy sinxronizatsiya mexanizmidir. U xotira to'siqlaridan foydalangan holda bir nechta oqimlar uchun umumiy ma'lumotlarga o'zaro eksklyuziv kirishni tashkil qilish uchun mo'ljallangan (oddiylik uchun siz mutexni umumiy ma'lumotlarga olib boradigan eshik sifatida tasavvur qilishingiz mumkin). Sintaksis Sarlavha fayli | #include<mutex> E'lon qilish| std::mutex mutex_name;
Muteksni qulflash | mutex_name.lock(); Oqim mutex bilan himoyalangan umumiy ma'lumotlardan eksklyuziv foydalanishni talab qiladi. Keyin hodisalarning rivojlanishining ikkita stsenariysi mavjud: mutex oqim tomonidan qulflanadi(bu holda boshqa hech qanday oqim bu ma'lumotlarga kira olmaydi) yoki oqim bloklanadi (agar mutex allaqachon boshqa oqim tomonidan qulflangan bo'lsa). Muteksni ochish | mutex_name.unlock(); Resursga ehtiyoj qolmaganda, joriy egasi boshqa mavzular manbaga kirishi uchun qulfni ochish funksiyasini chaqirishi kerak. Muteks bo'shatilganda, kirish kutilayotgan oqimlardan biriga beriladi.