Bagikan melalui


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();

Lihat juga

Namespace layanan konkurensi
Kelas reader_writer_lock