写一个多线程,让它死锁
#include <iostream>
#include <thread>
#include <mutex>
std::mutex mtx1;
std::mutex mtx2;
void thread1()
{
std::cout<<"in thread1"<<std::endl;
std::lock_guard<std::mutex> lock1(mtx1);
std::this_thread::sleep_for(std::chrono::seconds(1));
std::lock_guard<std::mutex> lock2(mtx2);
std::cout<<"out thread1"<<std::endl;
}
void thread2()
{
std::cout<<"in thread2"<<std::endl;
std::lock_guard<std::mutex> lock2(mtx2);
std::this_thread::sleep_for(std::chrono::seconds(1));
std::lock_guard<std::mutex> lock1(mtx1);
std::cout<<"out thread2"<<std::endl;
}
int main()
{
std::thread t1(thread1);
std::thread t2(thread2);
t1.join();
t2.join();
return 0;
}