std::timed_mutex::lock
De cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
<metanoindex/>
<tbody> </tbody> void lock(); |
(depuis C++11) | |
Verrouille le mutex. Si un autre thread a déjà verrouillé le mutex, un appel à
lock bloque l'exécution jusqu'à ce que le verrou est acquis .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.
Paramètres
(Aucun)
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.
Retourne la valeur
(Aucun)
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.
Exceptions
std::system_error jette quand des erreurs se produisent, y compris les erreurs du système d'exploitation sous-jacent qui empêcheraient
lock de respecter ses spécifications .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.
Exemple
Cet exemple montre comment
lock et unlock peut être utilisé pour protéger les données partagées .
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();
}
Résultat possible :
0 => 1
1 => 2
0 => 3
1 => 4
0 => 5
1 => 6
Voir aussi
essaie de verrouiller le mutex, retourne si le mutex n'est pas 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. (fonction membre publique) | |
essaie de verrouiller le mutex, les retours si le mutex a been unavailable pour la durée d'attente spécifié 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. (fonction membre publique) | |
essaie de verrouiller le mutex, si le mutex retourne a been unavailable jusqu'à ce point dans le temps spécifié a été atteint 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. (fonction membre publique) | |
déverrouille le 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. (fonction membre publique) | |