我有一个受data
保护的对象。
ReadWriteLock
问题在于,有时(似乎是随机且罕见的)解锁写锁需要太长时间(在Intel i7 2.6GHz CPU上4-10ms)。我像这样测量解锁时间:
final ReadWriteLock pendingRequestsLock = new ReentrantReadWriteLock();
final Lock pendingRequestsReadLock=pendingRequestsLock.readLock();
final Lock pendingRequestsWriteLock=pendingRequestsLock.writeLock();
正在定期启动使用写锁定的线程(每100ms)。
问题: 解锁时间长的原因是什么?我怎么能避免它?