Ejemplo_4.cpp
Prevencion de deadlocks con varios mutexTomasOrtellado
c_cpp
a year ago
697 B
5
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