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


    线程锁

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

    进程锁

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

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

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

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


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

  • 相关阅读:
    java并发计算的几种基本使用示例
    axios、ajax和xhr前端发送测试
    Spring注解
    Android菜鸟教程笔记
    普通二叉树操作
    MyBatis
    mysql的select语句总结与索引使用
    sys.argv的意义[转]
    硬件小白学习之路(1)稳压芯片LM431
    FPGA小白学习之路(6)串口波特率问题的处理
  • 原文地址:https://www.cnblogs.com/smallzhen/p/14407964.html
Copyright © 2020-2023  润新知