python学习中各种锁机制


	python学习中各种锁机制
[编程语言教程]

1. 互斥锁:  对全局变量进行锁定,保证同一时刻只有一个线程在操作共享全局变量,保证了共享数据操作的完整性

   互斥锁应用场景: 资源竞争问题 

   互斥锁的缺点:   阻止了多线程并发执行,含锁的代码只能以单线程模式执行,效率就大大地下降了; 容易出现死锁问题;

 

2. 死锁问题: 在两个或多个线程中,如果每个线程都锁定了其他线程试图锁定的共享资源,此时会让这些线程永久阻塞.

 避免死锁: 在设计程序时, 尽量减少资源竞争, 无法避免资源竞争时, 各个线程及时释放锁定的资源.

 

3. 乐观锁和悲观锁:

# 什么是乐观锁和悲观锁? 对悲观锁和乐观锁的理解?

悲观锁: 每次去拿数据时都会认为别人会修改,所以每次在拿数据时都会上锁,这样就能保证同一时刻只能有一个用户去操
作.传统的关系型数据库里有很多这种锁机制(行锁, 表锁, 读锁,写锁 这些都是在操作之前先上锁),Java中synchronized
和ReentrantLock等独占锁就是悲观锁思想的实现。

乐观锁: 相对悲观锁而言,乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新
的时候,会判断一下在此期间别人有没有去更新这个数据.
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » python学习中各种锁机制