python乐观锁和悲观锁

在并发编程中,锁是一种常用的机制,用于保护共享资源的访问。乐观锁和悲观锁是两种不同的锁机制。

乐观锁:不会一开始就加锁,在更新的时候,判断一下在此期间别人是否修改了数据,若修改了不执行此操作,反之执行;优点:出现并发冲突小时,乐观锁更好,悲观锁会锁住代码块或者数据,其他线程无法访问,影响并发,而且锁的创建和释放都会消耗资源;这种锁机制适合于多读少写的场景,如缓存中的数据更新。
实例:之前在做家具网时,有人买家具,可能同时买,先判断原始存量,然后在更新的时候再查询一次,如果相同就更新数据量,不同就进入循环重新判断。

悲观锁:操作数据时,直接将锁锁住,直到操作结束:优点:出现并发冲突大的时候,悲观锁更好,乐观锁频繁失败,需要不断重试,浪费CPU资源。这种锁机制适合于多写少读的场景,如数据库中的事务处理。

在Python中,可以使用线程锁来实现悲观锁,如使用threading.Lock();也可以使用一些乐观锁的实现,如使用类似redis的分布式锁,或者使用version来实现乐观锁。

在实现并发控制时,应该根据具体的实际情况来选择使用乐观锁还是悲观锁,一般来说,如果并发请求较少且竞争不激烈,可以使用乐观锁;如果并发请求比较多并且竞争激烈,则应该使用悲观锁。

相关推荐

  1. python乐观悲观

    2023-12-08 06:22:02       37 阅读
  2. 乐观悲观

    2023-12-08 06:22:02       12 阅读
  3. 乐观悲观

    2023-12-08 06:22:02       8 阅读
  4. 乐观悲观

    2023-12-08 06:22:02       20 阅读
  5. 面视题之——悲观乐观

    2023-12-08 06:22:02       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 06:22:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 06:22:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 06:22:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 06:22:02       20 阅读

热门阅读

  1. 入门低代码开发:快速构建应用程序的方法

    2023-12-08 06:22:02       35 阅读
  2. qt mingw编辑器的编码问题

    2023-12-08 06:22:02       34 阅读
  3. C#winform点击按钮下载数据库中表的字段到Excel上

    2023-12-08 06:22:02       39 阅读
  4. echarts词云图echarts-wordcloud使用方法

    2023-12-08 06:22:02       41 阅读
  5. 处理too many open files相关限制及拓展

    2023-12-08 06:22:02       35 阅读
  6. electron-builder 的基本使用

    2023-12-08 06:22:02       33 阅读
  7. tomcat反序列化

    2023-12-08 06:22:02       37 阅读
  8. 鸿蒙(HarmonyOS)应用开发——容器组件(Tabs组件)

    2023-12-08 06:22:02       38 阅读