Ejemplo_4.cpp
Prevencion de deadlocks con varios mutex// Prevencion de deadlocks con varios mutex #include <iostream> #include <thread> #include <mutex> std::mutex mtx1, mtx2; void tareaA() { std::lock(mtx1, mtx2); std::lock_guard<std::mutex> lock1(mtx1, std::adopt_lock); std::lock_guard<std::mutex> lock2(mtx2, std::adopt_lock); std::cout << "Tarea A completada.\n"; } void tareaB() { std::lock(mtx1, mtx2); std::lock_guard<std::mutex> lock1(mtx1, std::adopt_lock); std::lock_guard<std::mutex> lock2(mtx2, std::adopt_lock); std::cout << "Tarea B completada.\n"; } int main() { std::thread t1(tareaA); std::thread t2(tareaB); t1.join(); t2.join(); return 0; }
Leave a Comment