Kelas critical_section
Mutex non-reentrant yang secara eksplisit mengetahui Runtime Konkurensi.
Sintaks
class critical_section;
Anggota
Typedef Publik
Nama | Deskripsi |
---|---|
native_handle_type |
Referensi ke critical_section objek. |
Kelas Publik
Nama | Deskripsi |
---|---|
Kelas critical_section::scoped_lock | Pembungkus RAII aman pengecualian untuk critical_section objek. |
Konstruktor Publik
Nama | Deskripsi |
---|---|
critical_section | Membangun bagian penting baru. |
~critical_section Destructor | Menghancurkan bagian penting. |
Metode Publik
Nama | Deskripsi |
---|---|
kunci | Memperoleh bagian penting ini. |
native_handle | Mengembalikan handel asli khusus platform, jika ada. |
try_lock | Mencoba untuk memperoleh kunci tanpa memblokir. |
try_lock_for | Mencoba memperoleh kunci tanpa memblokir sejumlah milidetik tertentu. |
Membuka | Membuka kunci bagian penting. |
Keterangan
Untuk informasi selengkapnya, lihat Struktur Data Sinkronisasi.
Hierarki Warisan
critical_section
Persyaratan
Header: concrt.h
Namespace: konkurensi
critical_section
Membangun bagian penting baru.
critical_section();
~critical_section
Menghancurkan bagian penting.
~critical_section();
Keterangan
Diharapkan bahwa kunci tidak lagi dipegang ketika destruktor berjalan. Memungkinkan bagian penting untuk dihancurkan dengan kunci masih menyimpan hasil dalam perilaku yang tidak ditentukan.
kunci
Memperoleh bagian penting ini.
void lock();
Keterangan
Seringkali lebih aman untuk menggunakan konstruksi scoped_lock untuk memperoleh dan melepaskan critical_section
objek dengan cara yang aman.
Jika kunci sudah dipegang oleh konteks panggilan, pengecualian improper_lock akan dilemparkan.
native_handle
Mengembalikan handel asli khusus platform, jika ada.
native_handle_type native_handle();
Tampilkan Nilai
Referensi ke bagian penting.
Keterangan
Objek critical_section
tidak terkait dengan handel asli khusus platform untuk sistem operasi Windows. Metode ini hanya mengembalikan referensi ke objek itu sendiri.
Kelas critical_section::scoped_lock
Pembungkus RAII aman pengecualian untuk critical_section
objek.
class scoped_lock;
scoped_lock::scoped_lock
Membuat scoped_lock
objek dan memperoleh objek yang critical_section
diteruskan dalam _Critical_section
parameter . Jika bagian kritis dipegang oleh utas lain, panggilan ini akan memblokir.
explicit _CRTIMP scoped_lock(critical_section& _Critical_section);
Parameter
_Critical_section
Bagian penting untuk dikunci.
scoped_lock::~scoped_lock
scoped_lock
Menghancurkan objek dan melepaskan bagian penting yang disediakan dalam konstruktornya.
~scoped_lock();
try_lock
Mencoba untuk memperoleh kunci tanpa memblokir.
bool try_lock();
Tampilkan Nilai
Jika kunci diperoleh, nilai true
; jika tidak, nilai false
.
try_lock_for
Mencoba memperoleh kunci tanpa memblokir sejumlah milidetik tertentu.
bool try_lock_for(unsigned int _Timeout);
Parameter
_Timeout
Jumlah milidetik untuk menunggu sebelum waktu habis.
Tampilkan Nilai
Jika kunci diperoleh, nilai true
; jika tidak, nilai false
.
Membuka
Membuka kunci bagian penting.
void unlock();