Lock 独占锁非公平lock源码
2024-03-26 17:25:28 0 举报
Lock独占锁非公平lock源码是一种用于在多线程环境中对共享资源进行同步访问的机制。这段源码的核心内容是实现一个公平或非公平的独占锁。公平锁意味着线程将按照它们请求锁的顺序获得锁,而非公平锁则允许线程在锁可用时立即获得锁,无论它们请求的顺序如何。 在源码中,使用了一些重要的类和方法,例如ReentrantLock、NonfairSync和FairSync。ReentrantLock类是独占锁的实现,它提供了lock()和unlock()方法来获取和释放锁。NonfairSync和FairSync是ReentrantLock的两个内部类,分别实现了非公平和公平的同步策略。 这段源码的修饰语可能包括public、abstract、synchronized等,用于定义类的可见性、abstract方法的定义以及同步块的实现。此外,源码中还可能包含一些注释,用于描述类的功能、方法和变量的用途,以提高代码的可读性和可维护性。
作者其他创作
大纲/内容
shouldParkAfterFailedAcquire
3
1
acquireQueued
将竞争锁失败的线程CAS加入到队列末尾
parkAndCheckInterrupt
N
addWaiter(Node.EXCLUSIVE)
逻辑
Y
setExclusiveOwnerThread(Thread.currentThread());设置这个线程为独占
第二步
2
ReentrantLock/lock方法
tryAcquire(arg)重新进行一次锁获取和进行锁重入的处理
acquire(1);
使当前的线程park,即暂停了线程的轮询
0 条评论
下一页