std::timed_mutex::lock
Da cppreference.com.
< cpp | thread | timed mutex
![]() |
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
void lock(); |
(dal C++11) | |
Blocca il mutex. Se un altro thread ha già bloccato il mutex, una chiamata a
lock
bloccherà l'esecuzione fino a quando il blocco è stato acquisito.Original:
Locks the mutex. If another thread has already locked the mutex, a call to
lock
will block execution until the lock is acquired.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Indice |
[modifica] Parametri
(Nessuno)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Valore di ritorno
(Nessuno)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Eccezioni
Genera std::system_error quando si verificano errori, compresi gli errori del sistema operativo sottostante che impedirebbero
lock
dal soddisfare le sue specifiche.Original:
Throws std::system_error when errors occur, including errors from the underlying operating system that would prevent
lock
from meeting its specifications.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Note
A program may deadlock if a thread that already owns a mutex
calls lock
on that mutex
. Alternatively, if an implementation can detect the deadlock, a resource_deadlock_would_occur
error condition may be observed.
[modifica] Esempio
Questo esempio mostra come
lock
unlock
e può essere utilizzato per proteggere i dati condivisi .
Original:
This example shows how
lock
and unlock
can be used to protect shared data.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <iostream> #include <chrono> #include <thread> #include <mutex> int g_num = 0; // protected by 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(); }
Possible output:
0 => 1 1 => 2 0 => 3 1 => 4 0 => 5 1 => 6
[modifica] Vedi anche
prova a bloccare il mutex, restituisce se il mutex non è disponibile 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. (metodo pubblico) | |
prova a bloccare il mutex, restituisce se il mutex è been unavailable per la durata del timeout specificato Original: tries to lock the mutex, returns if the mutex has been unavailable for the specified timeout duration The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) | |
prova a bloccare il mutex, restituisce se il mutex è been unavailable fino al punto di tempo specificato è stato raggiunto Original: tries to lock the mutex, returns if the mutex has been unavailable until specified time point has been reached The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (metodo pubblico) | |
sblocca il 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. (metodo pubblico) |