C++并发与多线程(11) | unique_lock Ⅱ

 

一、unique_lock的成员函数

1.1 lock()

一起验证defer_lock的效果,修改成员函数如下:

 // 收集数据的函数
 void inMsgRecvQueue()
 {
     for (int i = 0; i < 10000; ++i)
     {
         std::unique_lock sbguard1(my_mutex1, std::defer_lock);//没有加锁的my_mutex1
         sbguard1.lock(); //后续不用自己unlock()
         cout << "inMsgRecvQueue()执行,插入一个元素" << i << endl;
         // 拿到了锁
         msgRecvQueue.push_back(i);
         
      

     }
     return;
 }

完整代码如下:


#include 
#include 
#include 
#include 
#include 
#include

using namespace std;

class A {
public:
    // 收集数据的函数
    void inMsgRecvQueue()
    {
        for (int i = 0; i < 10000; ++i)
        {
            std::unique_lock sbgua

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