Junior — Middle
Mevcut karşılıklı dışlama (mutex) türlerini listeleyebilir misin?
sobes.tech yapay zeka
AI'dan gelen yanıt
C/C++'ta çeşitli türlerde mutex (karşılıklı dışlama) vardır ve bunlar uygulama ve özellikler açısından farklılık gösterir:
- Basit (normal) mutex — kaynaklara özel erişimi sağlayan temel kilitleme mekanizması.
- Yinelenen mutex (recursive mutex) — aynı akışın mutex'i birden çok kez almasına izin verir, kendi kendini engellemeden.
- Zaman aşımlı mutex (timed mutex) — zaman aşımı ile denemeye imkan tanır.
- Hata kontrol mutex'i — hataları kontrol eder, örneğin, aynı akış tarafından tekrar tekrar alınmaya çalışıldığında hata verir.
C++11 standart kütüphanesinde şu türler bulunur:
std::mutexstd::recursive_mutexstd::timed_mutexstd::recursive_timed_mutex
std::recursive_mutex kullanım örneği:
#include <mutex>
std::recursive_mutex mtx;
void recursive_function(int count) {
mtx.lock();
if (count > 0) {
recursive_function(count - 1);
}
mtx.unlock();
}
Mutex türünün seçimi, göreve ve kilitleme gereksinimlerine bağlıdır.