C++ 锁

131 阅读1分钟
基础变量
    原子操作 > 手动加锁
    
资源变量,
    当涉及到读写的情况下,需要加锁
    如果只读,则不需要加锁
    
class Directive{

public:
    // 1. 暴露给外界的接口中进行加锁操作
    // 2. public函数只调用private函数
    void operate1(){
        lock();
        operator1Locked();
        unlock();
        
        ...
        
        lock();
        operator2Locked();
        unlock();
        
        ...
    }

private:
    // 1. 都是无锁的直接操作资源的函数接口
    // 2. private函数只调用private函数
    void operator1Locked(){}
    void operator2Locked(){}
    void operator3Locked(){}
    void operator4Locked(){}
    void operator5Locked(){}
};