Espacios de nombres
Variantes

std::mutex::unlock

De cppreference.com

[edit template]
 
 
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)
(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
 
 
<tbody> </tbody>
void unlock();
(desde C++11)

Desbloquea el mutex.

El mutex tiene que estar bloqueado por el hilo de ejecución actual, de lo contrario, el comportamiento no está definido.

Esta operación se sincroniza-con (como se define en std::memory_order) cualquier operación de bloqueo subsecuente que tome posesión del mismo mutex.

Parámetros

(Ninguno)

Valor de retorno

(Ninguno)

Excepciones

No lanza nada.

Notas

Generalmente unlock() no se llama directamente: std::unique_lock y std::lock_guard se utilizan para gestionar el bloqueo exclusivo.

Ejemplo

Este ejemplo muestra cómo lock y unlock pueden usarse para proteger datos compartidos.

#include <iostream>
#include <chrono>
#include <thread>
#include <mutex>

int g_num = 0;  // protegido por g_num_mutex
std::mutex g_num_mutex;

void slow_increment(int id) 
{
    for (int i = 0; i < 3; ++i) {
        g_num_mutex.lock();
        ++g_num;
        std::cout << id << " => " << g_num << '\n';
        g_num_mutex.unlock();

        std::this_thread::sleep_for(std::chrono::seconds(1));
    }
}

int main()
{
    std::thread t1(slow_increment, 0);
    std::thread t2(slow_increment, 1);
    t1.join();
    t2.join();
}

Posible salida:

0 => 1
1 => 2
0 => 3
1 => 4
0 => 5
1 => 6

Véase también

Bloquea el mutex; se bloquea si el mutex no está disponible
(función miembro pública) [editar]
Intenta bloquear el mutex; regresa si el mutex no está disponible
(función miembro pública) [editar]
Documentación de C para mtx_unlock