用例:轮换数据存储的凭据
我想要的是什么:
是否有方法/模式来实现这一目标?下面的代码示例实现了第1项,但没有实现第2项。
private Object credentialUpdate = new Object();
public void updateCredentials(String user, String pass) {
synchronize(credentialUpdate) {
this.user = user;
this.pass = pass;
}
}
public void doSomeQuery(String query) {
String curUser;
String curPass;
synchronize(credentialUpdate) {
curUser = this.user;
curPass;
}
// execute query
}
答案 0 :(得分:0)
使用java.util.concurrent.locks.ReadWriteLock
及其实施ReentrantReadWriteLock
。来自Javadoc:
ReadWriteLock维护一对关联的锁,一个用于只读操作,另一个用于写入。只要没有写入器,读锁定可以由多个读取器线程同时保持。写锁是独占的。