<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.
Sınıflar
Ad |
Tanımlama |
---|---|
Kilidini açar, yıkıcı bir nesne örneği bir şablon temsil eden bir mutex. |
|
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. |
|
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ış. |
|
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ış. |
|
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. |
|
Kilitleme ve kilidini açma, yönetmek nesneleri oluşturmak için örnek bir şablon temsil eden bir mutex. |
İşlevler
Ad |
Tanımlama |
---|---|
Bir kez tam olarak belirtilen çağrılabilir nesne yürütme sırasında çağırmak için bir mekanizma sağlar. |
|
Tüm bağımsız değişkenler olmadan kilitlenme kilitlemeye çalışır. |
Yapılar
Ad |
Tanımlama |
---|---|
Tanımlamak için kullanılan bir türü temsil eden bir adopt_lock. |
|
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. |
|
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. |
|
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şkenleri
Ad |
Tanımlama |
---|---|
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. |
|
İç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. |
|
İç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. |