ReadWriteLock适用于: 同一个对象,允许多个线程同时读,只允许一个线程写,且读写不能同时进行。
用法:
ReadWriteLock lock = new ReentrantReadWriteLock();
lock.readLock().lock();
try{
//读取数据
}
finally{
lock.readLock().unlock();
}
lock.writeLock().lock();
try{
//写数据
}
finally{
lock.writeLock().unlock();
}
lock.readLock().lock();
try{
//读取数据
}
finally{
lock.readLock().unlock();
}
lock.writeLock().lock();
try{
//写数据
}
finally{
lock.writeLock().unlock();
}