C++中的各种锁
在多线程开发中,常常会遇到数据同步,很多情况下用锁都是一个很好的选择。C++中常用的锁主要有下面几种:互斥锁(std::mutex)
[*]这是最基本的一种锁。它用于保护共享资源,在任意时刻,最多只有一个线程可以获取该锁,从而访问被保护的资源。当一个线程获取了互斥锁后,其他试图获取该锁的线程会被壅闭,直到持有锁的线程释放它。
[*]比方,在一个多线程步伐中,如果多个线程必要访问和修改同一个全局变量,就可以利用互斥锁来确保在同一时间只有一个线程能够进行修改操纵,避免数据竞争导致的错误结果。
1 #include2 #include3 #include45 std::mutex m; 6 int counter = 0; 78 void increment() { 9 m.lock();10 counter++;11 std::cout
页:
[1]