Skip to content

Commit ba7f285

Browse files
committed
add ReentrantLock
1 parent 5d2ad9a commit ba7f285

10 files changed

Lines changed: 429 additions & 0 deletions

SourceCode/ReentrantLock/ReentrantLock.md

Lines changed: 413 additions & 0 deletions
Large diffs are not rendered by default.
125 KB
Loading
100 KB
Loading
44.8 KB
Loading
111 KB
Loading
79 KB
Loading
98.6 KB
Loading
537 KB
Loading
41.9 KB
Loading

SourceCode/谈谈AQS/谈谈AQS.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
- getState():返回同步状态的当前值;
2+
- setState(int newState):设置当前同步状态;
3+
- compareAndSetState(int expect, int update):使用CAS设置当前状态,该方法能够保证状态设置的原子性;
4+
- tryAcquire(int arg):独占式获取同步状态,获取同步状态成功后,其他线程需要等待该线程释放同步状态才能获取同步状态
5+
- tryRelease(int arg):独占式释放同步状态;
6+
- tryAcquireShared(int arg):共享式获取同步状态,返回值大于等于0则表示获取成功,否则获取失败;
7+
- tryReleaseShared(int arg):共享式释放同步状态;
8+
- isHeldExclusively():当前同步器是否在独占式模式下被线程占用,一般该方法表示是否被当前线程所独占;
9+
- acquire(int arg):独占式获取同步状态,如果当前线程获取同步状态成功,则由该方法返回,否则,将会进入同步队列等待,该方法将会调用可重写的tryAcquire(int arg)方法;
10+
- acquireInterruptibly(int arg):与acquire(int arg)相同,但是该方法响应中断,当前线程为获取到同步状态而进入到同步队列中,如果当前线程被中断,则该方法会抛出InterruptedException异常并返回;
11+
- tryAcquireNanos(int arg,long nanos):超时获取同步状态,如果当前线程在nanos时间内没有获取到同步状态,那么将会返回false,已经获取则返回true;
12+
- acquireShared(int arg):共享式获取同步状态,如果当前线程未获取到同步状态,将会进入同步队列等待,与独占式的主要区别是在同一时刻可以有多个线程获取到同步状态;
13+
- acquireSharedInterruptibly(int arg):共享式获取同步状态,响应中断;
14+
- tryAcquireSharedNanos(int arg, long nanosTimeout):共享式获取同步状态,增加超时限制;
15+
- release(int arg):独占式释放同步状态,该方法会在释放同步状态之后,将同步队列中第一个节点包含的线程唤醒;
16+
- releaseShared(int arg):共享式释放同步状态;

0 commit comments

Comments
 (0)