Aracılığıyla paylaş


<mutex>

Standart <mutex> başlığı dahil et to define the classes mutex, recursive_mutex, timed_mutex, and recursive_timed_mutex; Şablonları lock_guard ve unique_lock; ve bölgeleri destekleyen türler ve karşılıklı dışlama tanımlayan işlev kodu.

Bu üstbilgi eşzamanlılık çalışma zamanı (ConcRT) kullanır, böylece diğer ConcRT mekanizmaları ile birlikte kullanabilirsiniz. ConcRT hakkında daha fazla bilgi için bkz: Eşzamanlılık çalışma zamanı.

#include <mutex>

Notlar

Not

Kullanarak 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 istisna atacak değil bir yıkıcı bir mutex türü vardır. Bu nesneler, karşılıklı dışlama sağlayan birden çok iş parçacığı aynı nesneyi kilitlemek çalıştığınızda yöntemi vardır. Özellikle, bir mutex 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 bool ve true yöntemi sahipliğini alır, ancak başka türlü false.

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

Mutex türlerini ş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 condition_variable_any.

A zaman uyumu sağlayıcısı türü zaman aşımına bir mutex türünün gereksinimlerini karşılar. Ayrıca, sahip try_lock_for ve try_lock_until , tek bir bağımsız değişken kullanılarak çağrılabilir olmalıdır ve için dönüştürülebilir bir türü döndürmesi gerekir yöntemler bool. Bu ek bağımsız değişkenler tüm varsayılan değerler varsa, zaman 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 tek bir bağımsız değişken kullanarak Rel_time, örnekleme, türü olan chrono::duration. Yöntemi 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, aksi halde dönüştürür false.

  • try_lock_until Yöntemi olmalıdır çağrılabilir tek bir bağımsız değişken kullanarak Abs_time, örnekleme, türü olan chrono::time_point. Yöntemi mutex sahipliğini almayı dener, ancak tarafından belirlenen zaman Hayır daha 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, aksi halde dönüştürür false.

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

Hh921467.collapse_all(tr-tr,VS.110).gifSınıflar

Ad

Tanımlama

lock_guard sınıfı

Kilidini açar, yıkıcı bir nesne örneği bir şablon temsil eden bir mutex.

mutex Class (STL)

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

recursive_mutex sınıfı

Zaman uyumu sağlayıcısı türünü temsil eder. Constrast için mutex sınıfı, kilitleme yöntemleri zaten kilitli nesneler için arama davranışı iyi tanımlanmış.

recursive_timed_mutex sınıfı

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

timed_mutex sınıfı

Zaman zaman uyumu sağlayıcısı türünü temsil eder. Zaman sınırlı bir program içinde 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.

Hh921467.collapse_all(tr-tr,VS.110).gifİşlevler

Ad

Tanımlama

call_once işlevi

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

lock Function

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

Hh921467.collapse_all(tr-tr,VS.110).gifYapılar

Ad

Tanımlama

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şlev ile kullanılan call_once bu başlatma sağlamak için kod bile çoklu iş parçacıkları yürütme olduğu durumda yalnızca bir kez çağrılır.

try_to_lock_t yapısı

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.

Hh921467.collapse_all(tr-tr,VS.110).gifDeğişkenleri

Ad

Tanımlama

adopt_lock değişken

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şken

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

try_to_lock değişken

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

Ayrıca bkz.

Diğer Kaynaklar

Üstbilgi dosyaları