C++ standart kütüphanesinde hangi tür mutexler vardır?
sobes.tech yapay zeka
AI'dan gelen yanıt
C++ standart kütüphanesinde (C++11’den itibaren) aşağıdaki türde mutexler tanımlanmıştır:
-
std::mutex: Temel, yinelenmeyen mutex. Onu kullanan bir iş parçacığı, onu serbest bırakmadan tekrar edemez. Aynı iş parçacığı tarafından tekrar alınmaya çalışılması tanımsız davranışa yol açar. -
std::recursive_mutex: Yinelenebilir mutex. Aynı iş parçacığının onu birkaç kez almasına izin verir. Alım ve serbest bırakma sayısı eşleşmelidir, böylece mutex diğer iş parçacıkları tarafından kullanılabilir hale gelir.std::mutex'e göre ek maliyetler getirir. -
std::timed_mutex: Aynıstd::mutexgibi, ancak zaman aşımı ile alma imkanı sağlar (try_lock_for,try_lock_until). Bazı durumlarda karşılıklı kilitlenmeleri önlemek için kullanışlıdır. -
std::recursive_timed_mutex:std::recursive_mutexvestd::timed_mutexkombinasyonu, zaman aşımı ile yinelenebilir alım sağlar.
std::shared_mutex (C++17’den itibaren) paylaşılan erişim (okuma/yazma) için bir mutex'tir, ancak yukarıda listelenen temel mutex türleriyle aynı anlamda "tür" olarak kabul edilmez, erişim kaynaklarının senkronizasyonu için kullanılır. Birden fazla iş parçacığının aynı anda okumasına izin verir, ancak yalnızca bir iş parçacığı yazabilir.