<mutex>

Standart başlığı dahil et <uyumu> sınıfları tanımlamak için mutex, recursive_mutex, timed_mutex, ve recursive_timed_mutex; Şablonları lock_guard ve unique_lock; ve destekleyen türler ve karşılıklı dışlama tanımlamak işlevlerini bölge kodu.

Diğer ConcRT mekanizmaları ile birlikte kullanabilmeniz için bu başlık eşzamanlılık çalışma zamanı (ConcRT) kullanır.ConcRT hakkında daha fazla bilgi için bkz: Eşzamanlılık Çalışma Zamanı.

#include <mutex>

Notlar

[!NOT]

İle derlenmiş kodda /clr veya /clr:pure, bu başlığı engellenir.

Sınıflar mutex ve recursive_mutex olan mutex türleri.Varsayılan bir oluşturucusu ve özel durumlar atar olmayan bir yıkıcı bir mutex türü vardır.Bu nesneleri, birden çok iş parçacığı aynı nesne kilitlemek çalıştığınızda, karşılıklı dışlama sağlayan yöntemler vardır.Özellikle, zaman uyumu sağlayıcısı türü yöntemleri içeren lock, try_lock, ve unlock:

  • lock Yöntemini çağıran iş parçacığının iş parçacığı mutex sahipliğini alıncaya kadar engeller.Dönüş değeri yok sayılır.

  • try_lock Yöntemi engellenmeden mutex sahipliğini almak çalışır.Dönüş türü için dönüştürülebilir olup bool ve true yöntemi sahipliğini alır, ancak başka bir boyutta false.

  • unlock Yöntemi çağıran iş parçacığının gelen mutex sahipliğini serbest bırakır.

Mutex türleri şablonları oluşturmak için tür bağımsız değişkeni kullanabilirsiniz lock_guard ve unique_lock.Bu tür nesneler kullanabilirsiniz Lock bağımsız değişkeni şablonda bekleme üye işlevleri için condition_variable_any.

A zaman uyumu sağlayıcısı türü zaman aşımına için bir mutex türü gereksinimlerini karşılar.Buna ek olarak, sahip try_lock_for ve try_lock_until tek bir bağımsız değişken kullanılarak çağrılabilir olmalıdır, sayıya bir vermelidir yöntemi bool.Bu ek bağımsız değişkenler tüm varsayılan değerleri olması koşuluyla, zaman uyumu sağlayıcısı türü bu işlevler ek bağımsız değişkenler kullanarak tanımlayabilirsiniz.

  • try_lock_for Yöntemi olmalıdır çağrılabilir bir baðýmsýz deðiþkeni kullanýlarak Rel_time, türü olan örnekleme, chrono::duration.Yöntem mutex sahipliğini almayı dener, ancak tarafından belirlenen süre içinde döndürür Rel_timebakılmaksızın başarı.Dönüş değeri dönüştürür true yöntemi; sahipliği alırsa dönüş değeri dönüştürür Aksi takdirde, false.

  • try_lock_until Yöntemi olmalıdır çağrılabilir bir baðýmsýz deðiþkeni kullanýlarak Abs_time, türü olan örnekleme, chrono::time_point.Yöntemi mutex sahipliğini almayı dener, ancak tarafından belirlenen saat den sonra verir Abs_timebakılmaksızın başarı.Dönüş değeri dönüştürür true yöntemi; sahipliği alırsa dönüş değeri dönüştürür Aksi takdirde, false.

Zaman uyumu sağlayıcısı türü de denir bir kilitlenebilir türü.Üye işlev sağlamıyorsa try_lock, bunun bir temel kilitlenebilir türü.Zaman uyumu sağlayıcısı türü de denir bir kilitlenebilir tipi zaman aşımına.

Sınıflar

Name

Açıklama

lock_guard Sınıfı

Kilidini açar, yıkıcı bir nesne oluşturmak için örnek bir şablon temsil eden bir mutex.

mutex Sınıfı (STL)

Bir mutex türünü temsil eder.Bir program içinde karşılıklı dışlama zorlamak için bu tür nesneler kullanın.

recursive_mutex Sınıfı

Bir mutex türünü temsil eder.Constrast için de mutex , zaten kilitli nesneler için kilitleme yöntemleri çağırmadan davranışı sınıftır iyi tanımlanmış.

recursive_timed_mutex Sınıfı

Zaman uyumu sağlayıcısı türünü temsil eder.Zaman sınırı içinde bir programı engelleme olan karşılıklı dışlama zorlamak için bu tür nesneleri kullanın.Farklı türdeki nesneleri olarak timed_mutex, kilitleme yöntemleri çağırmadan etkisini recursive_timed_mutex nesneleri iyi tanımlanmış.

timed_mutex Sınıfı

Zaman uyumu sağlayıcısı türünü temsil eder.Zaman sınırı içinde bir programı engelleme olan karşılıklı dışlama zorlamak için bu tür nesneleri kullanın.

unique_lock Sınıfı

Kilitleme ve kilidini açma, yönetmek nesneleri oluşturmak için örnek bir şablon temsil eden bir mutex.

İşlevler

Name

Açıklama

call_once İşlevi

Yürütme sırasında bir kez tam olarak belirtilen çağrılabilir nesne çağırmak için bir mekanizma sağlar.

lock İşlevi

Tüm bağımsız değişkenler olmadan kilitlenme kilitlemeye çalışır.

Yapılar

Name

Açıklama

adopt_lock_t Yapısı

Tanımlamak için kullanılan bir türü temsil eden bir adopt_lock.

defer_lock_t Yapısı

Tanımlayan bir türü temsil eden bir defer_lock fazla yüklenmiş oluşturucuların birini seçmek için kullanılan nesne unique_lock.

once_flag Yapısı

Temsil eden bir struct şablonu işleviyle kullanılan call_once başlatmanın sağlamak için kodu yalnızca bir kez bile birden çok iş parçacığı yürütme adı verilir.

try_to_lock_t Yapı

Temsil eden bir struct tanımlayan bir try_to_lock fazla yüklenmiş oluşturucuların birini seçmek için kullanılır ve nesne unique_lock.

Değişkenler

Name

Açıklama

adopt_lock Değişkeni

Oluşturucuları için geçirilen bir nesneyi temsil eden lock_guard ve unique_lock de oluşturucuya geçirilen mutex nesnesi kilitli olduğunu belirtmek için.

defer_lock Değişkeni

İçin oluşturucuya geçirilen bir nesneyi temsil eden unique_lock, yapıcı da kendisine geçirilen mutex nesnesi kilitlemelidir değil olduğunu belirtmek için.

try_to_lock Değişkeni

İçin oluşturucuya geçirilen bir nesneyi temsil eden unique_lock yapıcı kilidini açmak denemelisiniz belirtmek için mutex , ayrıca geçirilen için engellenmeden.

Ayrıca bkz.

Diğer Kaynaklar

C++ Standart Kitaplık Üstbilgi Dosyaları