C++17递归锁recursive_mutex

重点:

1.使用std::recursive_mutex来创建递归锁(recursive lock),它是C++标准库提供的一种多线程同步机制。递归锁允许同一线程多次获得锁,而不会造成死锁。

2.递归锁允许同一线程在已经获得锁的情况下再次获得锁,这对于递归函数或嵌套函数非常有用。不过,要小心使用递归锁,以避免死锁和性能问题。通常,只有在确实需要在递归调用中再次获得锁时才使用递归锁。

#include 
#include 
#include 

std::recursive_mutex mtx; // 创建递归锁

void RecursiveFunction(int depth) {
    std::unique_lock lock(mtx);
    std::cout << "Depth: " << depth << std::endl;

    if (depth > 0) {
        RecursiveFunction(depth - 1);
    }
}

int main() {
    std::thread t1(RecursiveFunction, 3);
    std::thread t2(RecursiveFunction, 2);

    t1.join();
    t2.join();

    return 0;
}

你可能感兴趣的:(C++经验,c++)