Namensräume
Varianten
Aktionen

std::mutex

Aus cppreference.com
< cpp‎ | thread


 
 
Thema Support-Bibliothek
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 Namespace
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)
Gegenseitigen Ausschluss
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)
Generische Sperrverwaltung
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)
Zustand Variablen
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)
Futures
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
Member-Funktionen
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
Sperren
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
Ureinwohner Griff
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;
(seit C++11)
Die mutex Klasse ist ein Synchronisierungsgrundeinheit, die verwendet werden, um gemeinsame Daten aus gleichzeitig von mehreren Threads zugegriffen schützen können .
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 bietet exklusive, nicht-rekursive Eigentum Semantik:
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.
  • A aufrufenden Thread besitzt eine mutex aus der Zeit, dass es erfolgreich ruft entweder lock oder try_lock bis unlock nennt .
    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.
  • Wenn ein Thread eine mutex besitzt, werden alle anderen Threads blockieren (für Anrufe in lock) oder erhalten eine false Rückgabewert (für try_lock), wenn sie das Eigentum an der mutex behaupten versuchen .
    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.
  • A aufrufenden Thread muss nicht im Besitz einer mutex vor dem Aufruf lock oder 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.
Das Verhalten eines Programms ist nicht definiert, wenn ein mutex zerstört wird, während noch von einem Thread gehört. Die mutex Klasse ist nicht kopierbar .
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.

Inhaltsverzeichnis

[Bearbeiten] Mitglied Typen

Mitglied Typ
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
Implementierung definiert
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.

[Bearbeiten] Member-Funktionen

baut den 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.

(öffentliche Elementfunktion) [edit]
Sperren
Original:
Locking
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
sperrt den Mutex, blockiert wenn der Mutex nicht verfügbar ist
(öffentliche Elementfunktion) [edit]
versucht den Mutex zu sperren,kehrt zurueck wenn der Mutex nicht verfügbar ist
(öffentliche Elementfunktion) [edit]
das Mutex wieder aufgehoben
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.

(öffentliche Elementfunktion) [edit]
Ureinwohner Griff
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.
gibt die zugrunde liegende Implementierung definierte Thread-Handle
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.

(öffentliche Elementfunktion) [edit]

[Bearbeiten] Beispiel

Dieses Beispiel zeigt, wie ein mutex verwendet werden, um eine std::map zwischen zwei Threads gemeinsam zu schützen .
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