• 分布式锁、进程锁、线程锁


    线程锁

      主要用来给方法、代码块加锁。当某个方法或代码块使用锁是,同一个时刻至多仅有一个线程在执行该段代码。当有多个线程访问同一对象的加锁方法/代码块时,同时只有一个线程在执行,其余线程必须等待当前线程执行完后才能执行该代码段。(比如 php 中的函数中的static变量)

    进程锁

      为了控制同一操作系统中多个进程访问一个共享资源,因为程序的独立性,各个进程无法控制其他进程对资源的访问,但是可以通过本地系统的信号量控制。 (比如:通过本地的某个具体文件锁的读取) 

    分布式锁
      当多个进程不在同一个系统中时,使用分布式锁控制多个进程对程序的访问。

      实现分布式锁必须依靠第三方存储介质来实现,比如使用redis缓存或者数据库存储某个id,如果该锁id存在,则将退出操作,如果锁id不存在,则将锁id写入并执行对数据的操作,操作完毕后再将锁删除。

    注意:线程锁、进程锁、分布式锁的作用一致,但是作用范围不同,分布式锁>进程锁>线程锁。


    参考:https://mp.weixin.qq.com/s/iVUmcoEhy3ObcrZdnHUmow

  • 相关阅读:
    OS模块
    利用一个random模块生成一个随机验证码功能
    random模块
    模块2
    模块module
    Java笔记汇总
    学习路上——技术书籍摸爬滚打
    web前端知识汇总——持续更新
    Python之路——进入Python学习
    Python细节备忘——时常拾遗以及关键点
  • 原文地址:https://www.cnblogs.com/smallzhen/p/14407964.html
Copyright © 2020-2023  润新知