Sobes.tech
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::mutex
  • std::recursive_mutex
  • std::timed_mutex
  • std::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.