Espacios de nombres
Variantes
Acciones

std::mutex

De cppreference.com
< cpp‎ | thread


 
 
Tema Biblioteca de ayuda
Threads
Original:
Threads
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
thread(C++11)
this_thread espacio de nombres
Original:
this_thread namespace
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
get_id(C++11)
yield(C++11)
sleep_for(C++11)
sleep_until(C++11)
Exclusión mutua
Original:
Mutual exclusion
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
mutex(C++11)
timed_mutex(C++11)
Gestión de bloqueos genérico
Original:
Generic lock management
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
lock_guard(C++11)
unique_lock(C++11)
defer_lock_t
try_to_lock_t
adopt_lock_t
(C++11)
(C++11)
(C++11)
lock(C++11)
try_lock(C++11)
defer_lock
try_to_lock
adopt_lock
(C++11)
(C++11)
(C++11)
Las variables de condición
Original:
Condition variables
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
condition_variable(C++11)
condition_variable_any(C++11)
notify_all_at_thread_exit(C++11)
cv_status(C++11)
Futuros
Original:
Futures
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
promise(C++11)
future(C++11)
shared_future(C++11)
packaged_task(C++11)
async(C++11)
launch(C++11)
future_status(C++11)
future_error(C++11)
future_category(C++11)
future_errc(C++11)
 
std::mutex
Las funciones miembro
Original:
Member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
mutex::mutex
Bloqueo
Original:
Locking
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
mutex::lock
mutex::try_lock
mutex::unlock
Identificador nativo
Original:
Native handle
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
mutex::native_handle
 
Defined in header <mutex>
class mutex;
(desde C++11)
La clase mutex es una primitiva de sincronización que se puede utilizar para proteger los datos compartidos de ser simultáneamente acceso a varios subprocesos .
Original:
The mutex class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
mutex ofrece exclusivos y no-recurrentes semántica de propiedad:
Original:
mutex offers exclusive, non-recursive ownership semantics:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Un subproceso de la llamada' posee una mutex desde el momento en que se llama correctamente a cualquier lock try_lock o hasta que se llama a unlock .
    Original:
    A calling thread owns a mutex from the time that it successfully calls either lock or try_lock until it calls unlock.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Cuando un hilo posee una mutex, todos los otros hilos se bloqueará (para las llamadas a lock) o recibir un valor de retorno false (por try_lock) si intentan reclamar la propiedad de la mutex .
    Original:
    When a thread owns a mutex, all other threads will block (for calls to lock) or receive a false return value (for try_lock) if they attempt to claim ownership of the mutex.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Un subproceso de llamada no debe ser propietario de una mutex antes de llamar a lock o try_lock .
    Original:
    A calling thread must not own a mutex prior to calling lock or try_lock.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
El comportamiento de un programa es indefinido si un mutex se destruye mientras sigue en manos de un hilo. La clase mutex no es copiable .
Original:
The behavior of a program is undefined if a mutex is destroyed while still owned by some thread. The mutex class is non-copyable.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Contenido

[editar] Tipos de miembros

Miembro de tipo
Original:
Member type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Definition
native_handle_type
' Definido por la implantación
Original:
implementation-defined
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Las funciones miembro

construye el mutex
Original:
constructs the mutex
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(miembro público función) [edit]
Bloqueo
Original:
Locking
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
bloquea el mutex, si bloquea el mutex no está disponible
Original:
locks the mutex, blocks if the mutex is not available
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(miembro público función) [edit]
intenta bloquear el mutex, devuelve si la exclusión mutua no se encuentra disponible
Original:
tries to lock the mutex, returns if the mutex is not available
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(miembro público función) [edit]
desbloquea el mutex
Original:
unlocks the mutex
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(miembro público función) [edit]
Identificador nativo
Original:
Native handle
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
devuelve la implementación subyacente definida por el identificador de subproceso
Original:
returns the underlying implementation-defined thread handle
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(miembro público función) [edit]

[editar] Ejemplo

Este ejemplo muestra cómo una mutex se puede utilizar para proteger una std::map compartida entre dos hilos .
Original:
This example shows how a mutex can be used to protect a std::map shared between two threads.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <iostream>
#include <chrono>
#include <thread>
#include <mutex>
#include <map>
#include <string>
 
std::map<std::string, std::string> g_pages;
std::mutex g_pages_mutex;
 
void save_page(const std::string &url)
{
    // simulate a long page fetch
    std::this_thread::sleep_for(std::chrono::seconds(2));
    std::string result = "fake content";
 
    g_pages_mutex.lock();
    g_pages[url] = result;
    g_pages_mutex.unlock();
}
 
int main() 
{
    std::thread t1(save_page, "http://foo");
    std::thread t2(save_page, "http://bar");
    t1.join();
    t2.join();
 
    g_pages_mutex.lock();
    for (const auto &pair : g_pages) {
        std::cout << pair.first << " => " << pair.second << '\n';
    }
    g_pages_mutex.unlock();
}

Output:

http://bar => fake content
http://foo => fake content