8
8
import java .util .concurrent .ConcurrentHashMap ;
9
9
import java .util .concurrent .ConcurrentMap ;
10
10
import java .util .concurrent .atomic .AtomicLong ;
11
- import java .util .concurrent .locks .ReentrantReadWriteLock ;
11
+ import java .util .concurrent .locks .ReentrantLock ;
12
12
import java .util .function .BiConsumer ;
13
13
14
14
/**
@@ -62,7 +62,7 @@ public static enum RemovalCause {
62
62
private ConcurrentMap <K , Cache <K , V >> cacheMap ;
63
63
private BiConsumer <List <Cache <K , V >>, RemovalCause > removeListener = (removes , removalCause ) -> {
64
64
};
65
- private final ReentrantReadWriteLock rwLock = new ReentrantReadWriteLock ();
65
+ private final ReentrantLock lock = new ReentrantLock ();
66
66
67
67
public LazyCache (int maximumSize , long expireAfterAccessMillis , long expireCheckIntervalMillis , BiConsumer <List <Cache <K , V >>, RemovalCause > removeListener ) {
68
68
AssertionUtils .ge1 (maximumSize );
@@ -157,7 +157,7 @@ private void removeForCause(List<Cache<K, V>> list, RemovalCause removalCause) {
157
157
}
158
158
159
159
private void checkMaximumSize () {
160
- if (rwLock . writeLock () .tryLock ()) { // 获取写锁
160
+ if (lock .tryLock ()) { // 获取写锁
161
161
try {
162
162
if (cacheMap .size () > backPressureSize ) {
163
163
var removeList = cacheMap .values ()
@@ -168,7 +168,7 @@ private void checkMaximumSize() {
168
168
removeForCause (removeList , RemovalCause .SIZE );
169
169
}
170
170
} finally {
171
- rwLock . writeLock () .unlock ();
171
+ lock .unlock ();
172
172
}
173
173
}
174
174
}
0 commit comments