`

独享锁/共享锁

    博客分类:
  • Lock
 
阅读更多

原创转载请注明出处:https://agilestyle.iteye.com/blog/2443635

 

独享锁:该锁每一次只能被一个线程所持有,参考synchronized以及JUC包下的ReentrantLock

共享锁:该锁可被多个线程共有,典型的就是ReentrantReadWriteLock里的读锁,它的读锁是可以被共享的,但是它的写锁每次只能被读占,读锁的共享可保证并发读是非常高效的,但是读写和写写,写读都是互斥的,参考JUC包下的ReentrantReadWriteLock

 

独享锁和共享锁都是通过AQS队列来实现的,通过实现不同的方法,来实现独享或者共享。

 

 

分享到:
评论

相关推荐

    Java 中15种锁的介绍

    3. **独享锁 / 共享锁** - **独享锁**(互斥锁) 只允许一个线程访问共享资源,如`ReentrantLock`的独占模式。 - **共享锁**(读写锁)允许多个线程同时读取,但只有一个线程可以写入,如`ReentrantReadWriteLock`...

    Java中的锁分类与使用.docx

    - **独享锁**(也称为互斥锁)一次只允许一个线程持有,例如Java的ReentrantLock。一旦被一个线程获取,其他线程必须等待锁释放才能继续执行。 - **共享锁**允许多个线程同时持有,Java的ReadWriteLock的读锁就是...

    2024秋招and春招-面试基础(1).docx

    - **独享锁/共享锁**:独享锁不允许其他线程访问锁定资源,共享锁允许多个线程同时访问。 - **互斥锁/读写锁**:互斥锁一次只允许一个线程访问资源,读写锁允许多个读取线程或单个写入线程访问。 - **乐观锁/悲观锁*...

    一线大厂Java多线程面试120题.pdf

    5. **独享锁/共享锁**:在Java中,独享锁(互斥锁)通常指`synchronized`,只允许一个线程访问;共享锁(读锁)如`ReadWriteLock`的读锁,允许多个线程同时读取,但写操作是独占的。 6. **ReentrantLock**:它是可...

    java同步开篇入门简单介绍

    在锁的类型中,还有公平锁和非公平锁、可重入锁、独享锁/共享锁、互斥锁/读写锁等概念。比如,Java的`synchronized`默认是非公平锁,而`ReentrantLock`可以设置为公平或非公平。可重入锁允许一个线程多次获取同一锁...

    Java锁的种类以及区别

    - `ReadWriteLock`接口提供了一种实现共享锁的方式,其中`ReadLock`实现了共享锁,而`WriteLock`实现了独享锁。 #### 四、互斥锁与读写锁 **1. 互斥锁** 互斥锁也称为独占锁或写锁,它确保同一时间内只有一个线程...

    Java中的锁分类的详细介绍

    Java 中的锁分类可以分为多种类型,包括公平锁、非公平锁、可重入锁、独享锁、共享锁、互斥锁、读写锁、乐观锁、悲观锁、分段锁、偏向锁、轻量级锁、重量级锁、自旋锁等。这些锁的分类并不是指锁的状态,有的指锁的...

    java进阶提高学习教程-14锁机制.pptx

    在 Java 中,锁有多种不同的实现机制,如可重入锁、读写锁、互斥锁、悲观锁、乐观锁、公平锁、锁消除、独享锁、共享锁等。 可重入锁 可重入锁,也叫做递归锁,指的是同一线程外层函数获得锁之后,内层递归函数仍然...

    基于JDK源码解析Java领域中的并发锁之设计与实现.pdf

    AQS提供了独享模式和共享模式两种技术实现: 1. 独享模式:适用于如ReentrantLock这样的独占锁,只有一个线程可以获取资源。 2. 共享模式:适用于如CountDownLatch、Semaphore等共享资源,允许多个线程同时获取资源...

    头条java面试题(10).pdf

    这个部分包括了MySQL锁的种类、行锁、表锁、悲观锁、乐观锁、共享锁、独享锁等知识点。 JVM调优 JVM调优是Java面试中一个重要的知识点,主要考察候选人的Java虚拟机性能优化能力。这个部分包括了JVM性能监控分析...

    易语言原子锁与许可区比较源码

    原子锁适用于资源独享且控制简单的场景,而许可区适用于需要控制并发数或实现更复杂同步策略的场合。在"易语言原子锁与许可区比较源码"这个示例中,可能包含了这两个概念的实际应用代码,通过阅读和分析这些源码,...

    Java多线程并发编程和锁原理解析

    例如:Semaphore 和 ReadWriteLock 和 countdownlatch,其读锁是共享锁,写锁是独享锁。 公平锁和非公平锁 公平锁加锁前先查看是否有排队等待的线程,有的话优先处理排在前面的线程,先来先得。非公平锁线程加锁时...

    java并发包源码-ConcurrentTest:Java并发包下源码阅读与自己的测试

    java并发包源码并发测试 受保护的最终int tryAcquireShared(int未使用){/ * *演练:* 1.如果另一个线程持有写锁定,则失败。 * 2.否则,此线程符合*锁定wrt状态,...//如果第一个加入其中的是独享锁即写锁,返回tr

    C 共享内存读写 2个程序之间传输数据

    为了确保数据的一致性和同步,可能需要使用互斥锁(mutex)或者信号量(semaphore)等同步机制,防止两个进程在同一时刻读写共享内存,导致数据混乱。在x1.c和x2.c中,可能需要包含`<semaphore.h>`来使用信号量,以...

    Linux系统编程之线程同步

    资源共享(独享资源则不会) 2. 调度随机(意味着数据访问会出现竞争) 3. 线程间缺乏必要的同步机制。 以上3点中,前两点不能改变,欲提高效率,传递数据,资源必须共享。只要共享资源,就一定会出现竞争。只要...

    oracle期末考试题及答案最新版-6页.pdf

    8. 共享锁:共享锁(SHARE锁)用于锁定表,允许其他用户读取(查询)表中的数据,但不允许插入、更新和删除。 9. FOR UPDATE子句:在SELECT语句中使用FOR UPDATE子句可以在一行或多行上放置排他锁,准备进行后续的...

    中国石油测井公司信息应用系统用户申请表.pdf

    3. **用户类型**:分为独享用户、共享用户和临时用户,这定义了用户对系统资源的访问权限和使用方式,独享用户通常拥有独立的权限和数据,共享用户可能需要与其他用户共享某些资源,而临时用户则有时间限制的使用权...

    windows, Unix, SQL等各类计数器的分析文档

    对于进程层面,"Private Bytes"表示进程独享的内存使用,不与其他进程共享;"Virtual Bytes"是进程使用的虚拟地址空间大小,过多可能导致内存限制;"Working Set"是进程工作集,包含最近被访问的内存页,系统会根据...

    oracle内存全面分析

    Oracle内存架构可大致分为两大部分:共享部分(SGA)和进程独享部分(PGA和UGA)。SGA(System Global Area)是所有连接到同一实例的用户共享的内存区域,而PGA(Program Global Area)和UGA(User Global Area)则...

Global site tag (gtag.js) - Google Analytics