一般的,我们在C++中有互斥锁mutex , 条件锁,自旋锁SpinLock , 读写锁RWLock .当然还有一些基于mutex的锁,
C++11中提供的有:
- std::mutex,最基本的 Mutex 类。
- std::recursive_mutex,递归 Mutex 类。
- std::time_mutex,定时 Mutex 类。
- std::recursive_timed_mutex,定时递归 Mutex 类。
Lock有2类
- std::lock_guard,与 Mutex RAII 相关,方便线程对互斥量上锁。
- std::unique_lock,与 Mutex RAII 相关,方便线程对互斥量上锁,但提供了更好的上锁和解锁控制。
在Unigine中,其内部提供的Thread类相关方法,也大同小异。
- 原子操作AtomicAdd,实际上调用了window平台的_InterlockedExchangeAdd,