Ejemplo_4.cpp
Prevencion de deadlocks con varios mutexTomasOrtellado
c_cpp
9 months ago
697 B
4
Indexable
// 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;
}
Editor is loading...
Leave a Comment