乐观锁与悲观锁–学习笔记
文章目录
前言一、悲观锁1、悲观锁用例一2、悲观锁用例二
二、乐观锁1、版本号保证数据一致性2、CAS算法保证数据一致性
总结
前言
在多线程编程当中,为了保证数据的一致性,需要使用锁机制。比如Qt中的std::mutex,在读写数据之前lock,处理完数据之后unlock。这种锁机制,我们通常称为悲观锁,即悲观的认为数据不安全,容易出错,所以在操作前夹锁,保证数据一定是多线程安全的。另外,我在看一些技术文章时,还看到一种锁:乐观锁,挺好奇的,它的机制是怎么样的?
一、悲观锁
悲观锁:每次操作数据之前加锁,每次操作数据后解锁。
1、悲观锁用例一
在Qt编程中,经常这样使用锁,利用lock_guard来管理锁,可以不用担心加锁后忘记解锁。lock_guard使用C++的对象生命周期机制,构造函数调用mutex的加锁操作、析构的时候调用mutex的解锁机制,完美的解
乐观锁与悲观锁–学习笔记最先出现在Python成神之路。
共有 0 条评论