如何选择合适的【多线程锁策略】?

2026-06-11 14:545阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计4480个文字,预计阅读时间需要18分钟。

如何选择合适的【多线程锁策略】?

@TOC

一、常见的锁策略

1.悲观锁 VS 乐观锁

悲观锁:假设最坏的情况,每次访问数据时都认为其他用户会修改数据,因此每次操作都会加锁。这种方式可以避免数据冲突,但会降低并发性能。 乐观锁:假设最坏的情况不会发生,在数据读取时不加锁,只在数据更新时检查是否有其他用户已经修改了数据。如果检测到数据已被修改,则放弃更新。这种方式可以提高并发性能,但可能会发生冲突。

@TOC


一、常见的锁策略

1. 悲观锁 VS 乐观锁

悲观锁 :

总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别

人想拿这个数据就会阻塞直到它拿到锁。

预期锁冲突的概率很高

就是它认为,只要它一加锁,就会出现锁冲突。 

乐观锁:

假设数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲

突进行检测,如果发现并发冲突了,则让返回用户错误的信息,让用户决定如何去做.

预期锁冲突的概率很低

就是说:它加锁没有那么容易就会出现锁冲突。


思考一个问题:

是悲观锁背后做的事情多,还是乐观锁背后做的事情多?

悲观锁的事情做得多

举例:

疫情期间,谁也不知道下一步疫情会不会更严重,疫情一旦严重,吃饭都成问题。可能会买不到菜! 悲观锁,就是在认为下一时刻就会出现这样的问题!为此,它去超市菜场买了大量的各种各样的生活用品 和 菜,屯在家里,以防不时之需。 乐观锁,就是认为在国家的管控下,疫情很难复发。为此它认为不需要屯那么多货。

阅读全文
标签:线程

本文共计4480个文字,预计阅读时间需要18分钟。

如何选择合适的【多线程锁策略】?

@TOC

一、常见的锁策略

1.悲观锁 VS 乐观锁

悲观锁:假设最坏的情况,每次访问数据时都认为其他用户会修改数据,因此每次操作都会加锁。这种方式可以避免数据冲突,但会降低并发性能。 乐观锁:假设最坏的情况不会发生,在数据读取时不加锁,只在数据更新时检查是否有其他用户已经修改了数据。如果检测到数据已被修改,则放弃更新。这种方式可以提高并发性能,但可能会发生冲突。

@TOC


一、常见的锁策略

1. 悲观锁 VS 乐观锁

悲观锁 :

总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别

人想拿这个数据就会阻塞直到它拿到锁。

预期锁冲突的概率很高

就是它认为,只要它一加锁,就会出现锁冲突。 

乐观锁:

假设数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲

突进行检测,如果发现并发冲突了,则让返回用户错误的信息,让用户决定如何去做.

预期锁冲突的概率很低

就是说:它加锁没有那么容易就会出现锁冲突。


思考一个问题:

是悲观锁背后做的事情多,还是乐观锁背后做的事情多?

悲观锁的事情做得多

举例:

疫情期间,谁也不知道下一步疫情会不会更严重,疫情一旦严重,吃饭都成问题。可能会买不到菜! 悲观锁,就是在认为下一时刻就会出现这样的问题!为此,它去超市菜场买了大量的各种各样的生活用品 和 菜,屯在家里,以防不时之需。 乐观锁,就是认为在国家的管控下,疫情很难复发。为此它认为不需要屯那么多货。

阅读全文
标签:线程