乐观锁和悲观锁概念,对比(死锁怎么形成以及解决理解)

1.乐观锁和悲观锁概念?

注:乐观锁和悲观锁都是一种思想,并不是真实存在于数据库中的一种机制。

悲观锁:当认为数据被并发修改的几率比较大,需要在修改之前借助于数据库锁机制,先对数据进行加锁的思想被称为悲观锁,又称PCC(Pessimistic Concurrency Control)。在效率方面,处理锁的操作会产生了额外的开销,而且增加了死锁的机会。当一个线程在处理某行数据的时候,其它线程只能等待。

乐观锁:乐观锁思想认为,数据一般是不会造成冲突的。只有在提交数据的时候,才会对数据的冲突进行检测。当发现冲突的时候,返回错误的信息,让用户决定如何去做。

乐观锁不会使用数据库提供的锁机制,一般的实现方式就是记录数据版本。

2.乐观锁和悲观锁对比?

乐观锁并不是真正的加锁,优点是效率高,缺点是更新失败的概率比较高;悲观锁依赖于数据库锁机制,更新失败的概率比较低,但是效率也低。

3.死锁怎么形成,是个什么样的一个现象?

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁

4.怎么解决死锁问题?

可以先检测:这种方法并不须事先采取任何限制性措施,也不必检查系统是否已经进入不安全区,此方法允许系统在运行过程中发生死锁。但可通过系统所设置的检测机构,及时地检测出死锁的发生,并精确地确定与死锁有关的进程和资源。检测方法包括定时检测、效率低时检测、进程等待时检测等。

然后解除死锁:采取适当措施,从系统中将已发生的死锁清除掉。
最佳方式就是防止死锁的发生。

猜你喜欢

转载自blog.csdn.net/weixin_50344807/article/details/113401183
今日推荐