美文网首页
同步锁完全总结

同步锁完全总结

作者: 深圳都这么冷 | 来源:发表于2023-06-06 10:48 被阅读0次

1.进程同步问题

进程是不共享内存空间的,只有写共享的文件,磁盘区时需要互斥,如果要同步,使用记录锁(文件的某一段)或者文件锁(整个文件)。这种做法是君子协定,操作同一区域的程序必须遵守先请求锁再操作。如果不遵守,直接绕过锁也是没有办法禁止的

多个进程共享的锁,必须放在进程都可以访问的内存映射区域,其实这也是记录锁的变形

2.进程内的线程同步问题

2.1普通锁

普通线程锁,保护临界区

2.2 尝试锁,限时尝试锁

尝试锁如果拿不到直接带着错误码返回
限时尝试锁会先等待制定的时间,如果拿不到直接带着错误码返回
这种锁避免和无限阻塞

2.3 如果是协作线程同步,使用锁+条件变量

典型的如生产者消费者问题

2.4 锁的实现

Linux上为两阶段锁,先spin一次,如果失败再sleep

2.5 通用信号量

可以用来实现锁和条件变量

2.6 读写锁

读锁:共享锁
写锁:排他锁
读写锁可以使用信号量实现

2.7 可重入锁

获得锁的进程可以重复获得,这有利于临界区操作递归的场景,方便模块化设计

相关文章

  • synchronized

    synchronized同步方式总结 普通同步函数的锁是this,当前类实例对象,同步代码块锁可以自己定义,静态同...

  • 解决多线程安全问题的锁方式

    synchronized:隐式锁 同步代码块 同步方法示例代码,略。 jdk 1.5 后,同步锁 Lock 同步锁...

  • Java多线程基础-使用多线程(二)

    |-目录|  同步锁  -|同步锁使用范围  -|对象锁与静态锁  -|死锁|  volatile实现’内存共享’...

  • 锁分类

    是否锁住资源分为悲观锁(互斥同步锁)和乐观锁 悲观锁 典型的就是synchronize锁和Lock锁互斥同步锁, ...

  • iOS 锁

    同步锁 自旋锁 互斥锁

  • 十一 .Java并发工具

    Java中的锁 锁是一种线程同步机制,类似同步块,但是锁比Java的同步块更复杂。锁(以及其他更高级的同步机制)是...

  • 2021-04-11_AQS锁互斥源码学习笔记总结

    20210411_AQS锁互斥源码学习笔记总结 1概述 AQS是一个用来构建锁和同步器的框架,Lock包中的锁(R...

  • Synchronized锁 偏向锁 锁优化

    Synchronized实现同步 同步普通方法,锁当前实例对象 同步静态方法,锁当前类的Class对象 同步方法块...

  • 并发编程反模式

    不连贯的同步性: 为了同步某个对象或者对象本身的某个域的访问,使用同步锁(内部锁或者显式锁,例如,对象本身的内部锁...

  • 起底多线程同步锁(iOS)

    起底多线程同步锁(iOS) 起底多线程同步锁(iOS)

网友评论

      本文标题:同步锁完全总结

      本文链接:https://www.haomeiwen.com/subject/nshgedtx.html