critical_section Sınıfı
Eşzamanlılık Çalışma Zamanı'nın açıkça farkında olan, yeniden girilmeyen bir mutex.
Sözdizimi
class critical_section;
Üyeler
Genel Tür Tanımları
Veri Akışı Adı | Açıklama |
---|---|
native_handle_type |
Bir nesneye critical_section başvuru. |
Genel Sınıflar
Veri Akışı Adı | Açıklama |
---|---|
critical_section::scoped_lock Sınıfı | Bir nesne için critical_section özel durum güvenli RAII sarmalayıcı. |
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
critical_section | Yeni bir kritik bölüm oluşturur. |
~critical_section Yıkıcı | Kritik bir bölümü yok eder. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
lock | Bu kritik bölümü alır. |
native_handle | Varsa platforma özgü bir yerel tanıtıcı döndürür. |
try_lock | Kilidi engellemeden almaya çalışır. |
try_lock_for | Belirli bir milisaniye için engelleme olmadan kilidi almaya çalışır. |
kilidi açmak | Kritik bölümün kilidini açar. |
Açıklamalar
Daha fazla bilgi için bkz . Eşitleme Veri Yapıları.
Devralma Hiyerarşisi
critical_section
Gereksinimler
Üst bilgi: concrt.h
Ad alanı: eşzamanlılık
critical_section
Yeni bir kritik bölüm oluşturur.
critical_section();
~critical_section
Kritik bir bölümü yok eder.
~critical_section();
Açıklamalar
Yıkıcı çalıştığında kilidin artık tutulmaması beklenir. Kritik bölümün kilitle yok edilmeye devam etmesine izin vermek tanımsız davranışla sonuçlanır.
lock
Bu kritik bölümü alır.
void lock();
Açıklamalar
Bir nesneyi güvenli bir critical_section
şekilde almak ve serbest bırakmak için scoped_lock yapısını kullanmak genellikle daha güvenlidir.
Kilit çağrı bağlamı tarafından zaten tutulursa, bir improper_lock özel durumu oluşturulur.
native_handle
Varsa platforma özgü bir yerel tanıtıcı döndürür.
native_handle_type native_handle();
Dönüş Değeri
Kritik bölüme başvuru.
Açıklamalar
Nesne critical_section
, Windows işletim sistemi için platforma özgü yerel tanıtıcıyla ilişkilendirilmemiştir. yöntemi yalnızca nesnenin kendisine bir başvuru döndürür.
critical_section::scoped_lock Sınıfı
Bir nesne için critical_section
özel durum güvenli RAII sarmalayıcı.
class scoped_lock;
scoped_lock::scoped_lock
Bir scoped_lock
nesnesi oluşturur ve parametresinde critical_section
_Critical_section
geçirilen nesneyi alır. Kritik bölüm başka bir iş parçacığı tarafından tutulursa, bu çağrı engellenir.
explicit _CRTIMP scoped_lock(critical_section& _Critical_section);
Parametreler
_Critical_section
Kilit için kritik bölüm.
scoped_lock::~scoped_lock
Bir scoped_lock
nesneyi yok eder ve oluşturucusunda sağlanan kritik bölümü serbest bırakır.
~scoped_lock();
try_lock
Kilidi engellemeden almaya çalışır.
bool try_lock();
Dönüş Değeri
Kilit alınırsa değeri true
; aksi takdirde değeri olur false
.
try_lock_for
Belirli bir milisaniye için engelleme olmadan kilidi almaya çalışır.
bool try_lock_for(unsigned int _Timeout);
Parametreler
_Zaman aşımı
Zaman aşımına uğramadan önce beklenen milisaniye sayısı.
Dönüş Değeri
Kilit alınırsa değeri true
; aksi takdirde değeri olur false
.
kilidi açmak
Kritik bölümün kilidini açar.
void unlock();