<mutex>
, , ve ; recursive_mutex
timed_mutex
şablonları lock_guard
unique_lock
ve recursive_timed_mutex
; sınıflarını mutex
ve 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 /clr
derlenen 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_lock
ve unlock
yöntemlerini lock
iç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ü olarakbool
dönüştürülebilir vetrue
yöntemin sahiplik elde edip etmemesidir, ancak tersidirfalse
.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 Lock
condition_variable_any
bekleme ü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_time
türü örneğichrono::duration
olan 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ındanRel_time
belirlenen süre içinde döndürür. Yöntem sahipliği alırsa dönüş değeri olaraktrue
dönüştürülür; aksi takdirde dönüş değeri olarakfalse
dönüştürülür.try_lock_until
yöntemi,Abs_time
türü örneğichrono::time_point
olan 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ındanAbs_time
belirlenen süreden sonra döndürmez. Yöntem sahipliği alırsa dönüş değeri olaraktrue
dönüştürülür; aksi takdirde dönüş değeri olarakfalse
dönüştürülür.
Bir mutex türü, kilitlenebilir tür olarak da bilinir. Üye işlevini try_lock
sağ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 y iki 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_lock türü temsil eder. |
defer_lock_t Yapısı |
öğesinin aşırı yüklenmiş oluşturucularından unique_lock birini 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_lock birini 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_lock oluş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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin