Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un mutex no reentrante que es explícitamente consciente del tiempo de ejecución de concurrencia.
Sintaxis
class critical_section;
Miembros
Definiciones de tipos públicas
| Nombre | Descripción |
|---|---|
native_handle_type |
Referencia a un objeto critical_section. |
Clases públicas
| Nombre | Descripción |
|---|---|
| clase critical_section::scoped_lock | Contenedor RAII seguro frente a excepciones para un objeto critical_section. |
Constructores públicos
| Nombre | Descripción |
|---|---|
| sección_crítica | Construye una sección crítica nueva. |
| Destructor de ~critical_section | Destruye una sección crítica. |
Métodos públicos
| Nombre | Descripción |
|---|---|
| lock | Obtiene esta sección crítica. |
| native_handle | Devuelve un identificador nativo específico de la plataforma, si existe. |
| try_lock | Intenta adquirir el bloqueo sin obstruir. |
| try_lock_for | Intenta adquirir el bloqueo sin bloquear durante un número específico de milisegundos. |
| desbloquear | Desbloquea la sección crítica. |
Comentarios
Para más información, consulte Estructuras de datos de sincronización.
Jerarquía de herencia
critical_section
Requisitos
Encabezado: concrt.h
Espacio de nombres: simultaneidad
sección crítica
Construye una sección crítica nueva.
critical_section();
~sección_crítica
Destruye una sección crítica.
~critical_section();
Comentarios
Se espera que el bloqueo ya no se mantenga cuando se ejecute el destructor. Permitir que se destruya la sección crítica con el bloqueo todavía retenido genera un comportamiento no definido.
cerradura
Adquiere esta sección crítica.
void lock();
Comentarios
Por lo general, suele ser más seguro utilizar la construcción scoped_lock para adquirir y liberar un objeto critical_section de manera segura ante excepciones.
Si el contexto de llamada ya retiene el bloqueo, se generará una excepción improper_lock.
manejador nativo
Devuelve un identificador nativo específico de la plataforma, si existe.
native_handle_type native_handle();
Valor devuelto
Referencia a la sección crítica.
Comentarios
Un objeto critical_section no está asociado con un identificador nativo propio de la plataforma para el sistema operativo Windows. El método simplemente devuelve una referencia al objeto mismo.
clase critical_section::scoped_lock
Contenedor RAII seguro frente a excepciones para un objeto critical_section.
class scoped_lock;
scoped_lock::scoped_lock
Construye un objeto scoped_lock y adquiere el objeto critical_section pasado en el parámetro _Critical_section. Si otro subproceso retiene la sección crítica, esta llamada se bloqueará.
explicit _CRTIMP scoped_lock(critical_section& _Critical_section);
Parámetros
_Sección_crítica
La sección crítica que se va a bloquear.
scoped_lock::~scoped_lock
Destruye un objeto scoped_lock y libera la sección crítica proporcionada en su constructor.
~scoped_lock();
try_lock
Intenta adquirir el bloqueo sin obstruir.
bool try_lock();
Valor devuelto
Si se adquirió el bloqueo, el valor es true; de lo contrario, false.
intentando_bloqueo_por
Intenta adquirir el bloqueo sin bloquear durante un número específico de milisegundos.
bool try_lock_for(unsigned int _Timeout);
Parámetros
_Timeout
El número de milisegundos que se va a esperar antes de que se agote el tiempo de espera.
Valor devuelto
Si se adquirió el bloqueo, el valor es true; de lo contrario, false.
desbloquear
Desbloquea la sección crítica.
void unlock();