std::lock guard
Megjelenés
Főnév
std::lock guard (tsz. std::lock guards)
- (informatika) A
std::lock_guardC++-ban egy RAII (Resource Acquisition Is Initialization) alapú osztály, amit mutexek automatikus kezelésére használnak. A célja, hogy egy adott kritikus szakaszban zároljon egy mutexet, majd automatikusan feloldja azt, amikor a scope (hatókör) véget ér.
Magyar magyarázat:
#include <iostream>
#include <mutex>
#include <thread>
std::mutex mtx;
void szal_fuggveny() {
std::lock_guard<std::mutex> zar(mtx); // A mutex itt lezárásra kerül
std::cout << "Kritikus szakaszban vagyunk" << std::endl;
// Amikor a függvény véget ér (vagy kivétel történik),
// a lock_guard automatikusan feloldja a mutexet
}
Mit csinál a std::lock_guard?
- Belépéskor: lezárja a megadott
std::mutexobjektumot. - Kilépéskor: automatikusan feloldja (unlock) a mutexet, amikor a
lock_guardobjektum megszűnik.
Ez nagyon hasznos, mert: - Megakadályozza, hogy elfelejtsük feloldani a mutexet. - Megvédi a kódot attól, hogy kivétel dobása esetén zárolva maradjon a mutex.
Magyar név szerint:
std::mutex→ „kölcsönös kizárás” vagy „mutex”std::lock_guard→ „zárőr” vagy „védőzár”
Szemléletesen úgy képzelheted el, mintha a lock_guard lenne a kulcs, amit bedugsz a zárba (mutex), és amikor eldobod (kikerül a hatókörből), automatikusan kihúzza a kulcsot is.
Szeretnéd, hogy írjak egy magyar kommentekkel ellátott példaprogramot is hozzá?
- std::lock guard - Szótár.net (en-hu)
- std::lock guard - Sztaki (en-hu)
- std::lock guard - Merriam–Webster
- std::lock guard - Cambridge
- std::lock guard - WordNet
- std::lock guard - Яндекс (en-ru)
- std::lock guard - Google (en-hu)
- std::lock guard - Wikidata
- std::lock guard - Wikipédia (angol)