【文件属性】:
文件名称:java并发包源码-ConcurrentTest:Java并发包下源码阅读与自己的测试
文件大小:44KB
文件格式:ZIP
更新时间:2021-05-22 18:43:42
系统开源
java并发包源码并发测试
受保护的最终int
tryAcquireShared(int未使用){/
*
*演练:*
1.如果另一个线程持有写锁定,则失败。
*
2.否则,此线程符合*锁定wrt状态,因此请问是否由于队列策略而应阻止*。
如果不是,请尝试*按CASing状态授予许可并更新计数。
*请注意,此步骤不会检查可重入的内容*已被推迟到完整版本*以避免在*更典型的不可重入的情况下检查保留计数。
*
3.如果第2步失败,或者由于线程*显然不符合条件,或者CAS失败或计数*饱和,请使用完全重试循环链接到版本。
*
/线程当前=
Thread.currentThread();
int
c
=
getState();
if(exclusiveCount(c)!=
0
&&
getExclusiveOwnerThread()!=
current)//如果写锁被占领了而不是当前线程占领,那么直接返回-1
return
-1;
int
r
=
sharedCount(c);
//查询共享锁的数量if(!readerShouldBlock()&&
//如果第一个加入其中的是独享锁即写锁,返回tr
【文件预览】:
ConcurrentTest-master
----src()
--------AbstractQueuedSynchronizer.md(1KB)
--------WriterLock.txt(7KB)
--------main()
--------LinkedBlockingQueue.md(14KB)
----.idea()
--------uiDesigner.xml(9KB)
--------vcs.xml(167B)
----ReentrantReadWriteLock.txt(24KB)
----out()
--------production()
----README.md(6KB)