public class IntermediateMessage {
private final ReentrantReadWriteLock readWriteLock = new ReentrantReadWriteLock();
private final Lock read = readWriteLock.readLock();
private final Lock write = readWriteLock.writeLock();
private volatile double ratio;
public IntermediateMessage(){
this.ratio=1.0d;
}
public IntermediateMessage(double ratio){
this.ratio = ratio;
}
public double getRatio(){
read.lock();
try{
return this.ratio;
}
finally{
read.unlock();
}
}
public void setRatio(double ratio){
write.lock();
try{
this.ratio = ratio;
}
finally{
write.unlock();
}
}
}
У меня есть этот объект. У меня есть экземпляр этого объекта в моем приложении, и один поток записывает в переменную отношения, в то время как другие потоки читают отношение. Это правильный способ защитить переменную отношения? Должен ли я объявлять коэффициент как изменчивый?Как синхронизировать геттер и сеттер в потоковом режиме
извините. моя вина. Я обновил свой вопрос. Я просто хотел убедиться, что это необходимо, чтобы подать в суд на блокировку чтения/записи с волатильной декларацией. – codereviewanskquestions