Espacios de nombres
Variantes
Acciones

std::shared_lock

De cppreference.com
< cpp‎ | thread
 
 
Biblioteca de apoyo de concurrencia
Hilos
(C++11)
(C++20)
Espacio de nombres this_thread
(C++11)
(C++11)
(C++11)
Cancelación cooperativa
Exclusión mutua
(C++11)
Gestión genérica de bloqueo
(C++11)
(C++11)
shared_lock
(C++14)
(C++11)
(C++11)
(C++11)
Variables de condición
(C++11)
Semáforos
Pestillos y barreras
(C++20)
(C++20)
Futuros
(C++11)
(C++11)
(C++11)
(C++11)
Recuperación segura
(C++26)
Punteros de riesgo
Tipos atómicos
(C++11)
(C++20)
Inicialización de tipos atómicos
(C++11)(en desuso en C++20)
(C++11)(en desuso en C++20)
Orden de memoria
Funciones independientes para operaciones atómicas
Funciones independientes para indicadores atómicos
 
 
Definido en el archivo de encabezado <shared_mutex>
template< class Mutex >
class shared_lock;
(desde C++14)

La clase shared_lock es un envoltorio de propiedad de mutex compartido de propósito general que permite el bloqueo diferido, el bloqueo temporizado y la transferencia de la propiedad del bloqueo. Bloquear un shared_lock bloquea el mutex compartido asociado en modalidad compartida (para bloquearlo en modalidad exclusiva, se puede usar std::unique_lock).

La clase shared_lock se puede mover, pero no se puede copiar; cumple con los requerimientos de MoveConstructible y MoveAssignable pero no de CopyConstructible o CopyAssignable.

Para esperar en un mutex compartido en modalidad de propiedad compartida, se puede usar std::condition_variable_any (std::condition_variable requiere std::unique_lock y así solo puede esperar en modalidad de propiedad única).

Contenido

[editar] Parámetros de plantilla

Mutex - El tipo de mutex compartido a bloquear. El tipo debe cumplir con los requerimientos de SharedMutex.

[editar] Tipos miembro

Tipo Definición
mutex_type Mutex

[editar] Funciones miembro

Construye un objeto shared_lock, opcionalmente bloquea el mutex suplementado
(función miembro pública) [editar]
Desbloquea el mutex asociado
(función miembro pública) [editar]
Desbloquea el mutex si lo posee, y toma posesión de otro
(función miembro pública) [editar]
Bloqueo compartido
Bloquea el mutex asociado
(función miembro pública) [editar]
Intenta bloquear el mutex asociado
(función miembro pública) [editar]
Intenta bloquear el mutex asociado por la duración especificada
(función miembro pública) [editar]
Intenta bloquear el mutex asociado hasta un punto en el tiempo especificado
(función miembro pública) [editar]
Desbloquea el mutex asociado
(función miembro pública) [editar]
Modificadores
Intercambia los datos miembro con otro objeto shared_lock
(función miembro pública) [editar]
Desasocia el mutex sin desbloquear
(función miembro pública) [editar]
Observadores
Devuelve un puntero al mutex asociado
(función miembro pública) [editar]
Comprueba si el cerrojo posee su mutex asociado
(función miembro pública) [editar]
Comprueba si el cerrojo posee su mutex asociado
(función miembro pública) [editar]

[editar] Funciones no miembro

Especialización de std::swap para shared_lock
(plantilla de función) [editar]

[editar] Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2981 C++17 Se proporcionó guía de deducción redundante de scoped_lock<MutexTypes...>. Se eliminó.