Aracılığıyla paylaş


<mutex>

, , ve ; recursive_mutextimed_mutexşablonları lock_guardunique_lockve recursive_timed_mutex; sınıflarını mutexve karşılıklı dışlama kod bölgelerini tanımlayan destekleyici türleri ve işlevleri tanımlamak için standart üst bilgiyi <mutex> ekleyin.

Uyarı

Visual Studio 2015'den başlayarak, C++ Standart Kitaplığı eşitleme türleri Windows eşitleme temellerini temel alır ve artık ConcRT kullanmaz (hedef platform Windows XP hariç). içinde <mutex> tanımlanan türler concRT türleri veya işlevleri ile kullanılmamalıdır.

Gereksinimler

Üstbilgi:<mutex>

Ad alanı:std

Açıklamalar

Dekont

kullanılarak /clrderlenen kodda bu üst bilgi engellenir.

ve sınıfları mutex mutex türleridir.recursive_mutex Bir mutex türü varsayılan bir oluşturucuya ve özel durumlar oluşturmayan bir yıkıcıya sahiptir. Bu nesneler, birden çok iş parçacığı aynı nesneyi kilitlemeye çalıştığında karşılıklı dışlama sağlayan yöntemlere sahiptir. Özel olarak, bir mutex türü , try_lockve unlockyöntemlerini lockiçerir:

  • yöntemi, lock iş parçacığı mutex'in sahipliğini elde edene kadar çağıran iş parçacığını engeller. Dönüş değeri yoksayılır.

  • try_lock yöntemi engelleme olmadan mutex sahipliğini elde etmeye çalışır. Dönüş türü olarak bool dönüştürülebilir ve true yöntemin sahiplik elde edip etmemesidir, ancak tersidir false.

  • yöntemi, unlock çağıran iş parçacığından mutex'in sahipliğini serbest bırakır.

ve unique_lockşablonlarını lock_guard örneklemek için tür bağımsız değişkenleri olarak mutex türlerini kullanabilirsiniz. Bu türdeki nesneleri, şablonundaki Lockcondition_variable_anybekleme üyesi işlevlerine bağımsız değişken olarak kullanabilirsiniz.

Zamanlanmış bir mutex türü, bir mutex türünün gereksinimlerini karşılar. Buna ek olarak, tek bir bağımsız değişken kullanılarak çağrılabilen ve yöntemlerine sahiptir try_lock_for ve dönüştürülebilir bir tür döndürmelidirbool.try_lock_until Zamanlanmış bir mutex türü, bu ek bağımsız değişkenlerin tümünün varsayılan değerleri olması koşuluyla ek bağımsız değişkenler kullanarak bu işlevleri tanımlayabilir.

  • try_lock_for yöntemi, Rel_timetürü örneği chrono::durationolan bir bağımsız değişken kullanılarak çağrılabilir olmalıdır. yöntemi mutex'in sahipliğini almaya çalışır, ancak başarıdan bağımsız olarak tarafından Rel_timebelirlenen süre içinde döndürür. Yöntem sahipliği alırsa dönüş değeri olarak true dönüştürülür; aksi takdirde dönüş değeri olarak falsedönüştürülür.

  • try_lock_until yöntemi, Abs_timetürü örneği chrono::time_pointolan bir bağımsız değişken kullanılarak çağrılabilir olmalıdır. yöntemi mutex'in sahipliğini almaya çalışır, ancak başarıdan bağımsız olarak tarafından Abs_timebelirlenen süreden sonra döndürmez. Yöntem sahipliği alırsa dönüş değeri olarak true dönüştürülür; aksi takdirde dönüş değeri olarak falsedönüştürülür.

Bir mutex türü, kilitlenebilir tür olarak da bilinir. Üye işlevini try_locksağlamazsa, temel bir kilitlenebilir tür olur. Zamanlanmış bir mutex türü, zamanlanmış kilitlenebilir tür olarak bilinir. Belirli bir süre için veya mutex üzerindeki bir kilit alınana kadar zamanlanmış kilitlenebilir tür blokları.

Üyeler

Sınıflar

Ad Tanım
lock_guard Sınıfı Yıkıcısı bir mutex'in kilidini açan bir nesne oluşturmak için örneği oluşturulabilen bir şablonu temsil eder.
mutex Sınıf (C++ Standart Kitaplığı) Bir mutex türünü temsil eder. Program içinde karşılıklı dışlama uygulamak için bu tür nesneleri kullanın.
recursive_mutex Sınıfı Bir mutex türünü temsil eder. sınıfının aksine mutex , zaten kilitli olan nesneler için kilitleme yöntemlerini çağırma davranışı iyi tanımlanmıştır.
recursive_timed_mutex Sınıfı Program içinde zaman sınırlı engellemeye sahip karşılıklı dışlama uygulamak için bu tür nesneleri kullanın. aksine timed_mutex, nesneler için recursive_timed_mutex kilitleme yöntemlerini çağırmanın etkisi iyi tanımlanmıştır.
scoped_lock Sınıfı
timed_mutex Sınıfı Program içinde zaman sınırlı engellemeye sahip karşılıklı dışlama uygulamak için bu tür nesneleri kullanın.
unique_lock Sınıfı Bir mutex'in kilitlenmesini ve kilidinin açılmasını yöneten nesneler oluşturmak için örneği oluşturulabilen bir şablonu temsil eder.

İşlevler

Ad Tanım
call_once Yürütme sırasında belirtilen çağrılabilir nesneyi tam olarak bir kez çağırmak için bir mekanizma sağlar.
lock Kilitlenme olmadan tüm bağımsız değişkenleri kilitlemeye çalışır.
swap ve yiki mutex nesnenin x iç durumlarını değiştirmek için çalışır.
try_lock Kilitlenebilir nesneyi kilitlemeye çalışır. Hemen döndürür.

Yapılar

Ad Tanım
adopt_lock_t Yapısı tanımlamak için kullanılan bir adopt_locktürü temsil eder.
defer_lock_t Yapısı öğesinin aşırı yüklenmiş oluşturucularından unique_lockbirini seçmek için kullanılan nesneyi defer_lock tanımlayan bir türü temsil eder.
once_flag Yapısı Başlatma kodunun birden çok yürütme iş parçacığının varlığında bile yalnızca bir kez çağrıldığından emin olmak için şablon işleviyle call_once birlikte kullanılan bir struct öğesini temsil eder.
try_to_lock_t Yapısı Nesnesini try_to_lock tanımlayan ve öğesinin aşırı yüklenmiş oluşturucularından unique_lockbirini seçmek için kullanılan bir struct öğesini temsil eder.

Değişkenler

Ad Tanım
adopt_lock oluşturucuya geçirilmekte olan nesnenin mutex kilitli olduğunu belirtmek için lock_guard ve unique_lock için oluşturuculara geçirilebilen bir nesneyi temsil eder.
defer_lock Oluşturucunun, aynı zamanda ona geçirilen nesneyi kilitlememesi mutex gerektiğini belirtmek için unique_lockoluşturucuya geçirilebilen bir nesneyi temsil eder.
try_to_lock Oluşturucunun engellenmeden ona geçirilen nesnenin kilidini mutex açmayı denemesi gerektiğini belirtmek için unique_lock oluşturucuya geçirilebilen bir nesneyi temsil eder.

Ayrıca bkz.

Üst Bilgi Dosyaları Başvurusu